PDA

View Full Version : سوال: ایجاد دیتابیس در Runtime



علیرضا حسن زاده
چهارشنبه 25 آذر 1388, 11:09 صبح
با سلام خدمت دوستان
من یه برنامه دارم که پایگاه دادش اس کیو ال هست می خوام کاربر بتونه اطلاعاتی رو که می خواد رو به صورت فایل اکسس در محل دلخواه ذخیره کنه همه چی رو بلدم ولی نمی دونم فایل اکسس رو چطوری ایجاد کنم اگه بتونم فایل رو ایجاد کنم بعدش جدول ها وغیره رو می تونم توش ایجاد کنم مشکل ایجاد فایل اکسس است.
کسی می تونه کمک کنه؟:قلب:

Nima NT
چهارشنبه 25 آذر 1388, 14:36 عصر
بهتره Table ایجاد کنید تا کل پایگاه داده رو ، این طوری بهتر نیست ؟!
کاری که شما میخواهید بکنید شاید خیلی اشتباهات در اون پیش بیاد که هم کار رو برای کاربر سخت کنه و هم برای شما.

hojjatshariffam
چهارشنبه 15 اردیبهشت 1389, 14:54 عصر
با سلام خدمت دوستان
من یه برنامه دارم که پایگاه دادش اس کیو ال هست می خوام کاربر بتونه اطلاعاتی رو که می خواد رو به صورت فایل اکسس در محل دلخواه ذخیره کنه همه چی رو بلدم ولی نمی دونم فایل اکسس رو چطوری ایجاد کنم اگه بتونم فایل رو ایجاد کنم بعدش جدول ها وغیره رو می تونم توش ایجاد کنم مشکل ایجاد فایل اکسس است.
کسی می تونه کمک کنه؟:قلب:



بچه ها کسی بلده توسط کد سی شارپ چطور میشه یک فایل accdb (اکسس 2007 )رو ایجاد کرد ?

Rejnev
چهارشنبه 15 اردیبهشت 1389, 15:08 عصر
من بلد نیستم ولی میشه یک فایل خام رو کنار برنامه گذاشت و اونو هرجا که میخوای کپی کرد و توش جدول ساخت و ...

hojjatshariffam
چهارشنبه 15 اردیبهشت 1389, 15:40 عصر
من بلد نیستم ولی میشه یک فایل خام رو کنار برنامه گذاشت و اونو هرجا که میخوای کپی کرد و توش جدول ساخت و ...
من خودم دقیقا همین کار رو می کنم ولی فکر کنم که اصولی نباشه
ضمنا ممکنه کاربر اون رو دستکاری کرده باشه
میخوام خودم توسط کد از اول بسازمش

hojjatshariffam
جمعه 17 اردیبهشت 1389, 02:16 صبح
بچه ها کسی بلده توسط کد سی شارپ چطور میشه یک فایل accdb (اکسس 2007 )رو ایجاد کرد ?

کسی بلد نیست؟

Saeed.Masoumi
جمعه 17 اردیبهشت 1389, 05:53 صبح
سلام
برای اس کیو ال رو می گم خودت تبدیلش کن به اکسس:



SqlConnection MySqlConnection = new SqlConnection("Data Source=localhost;Integrated Security=True");
string Command4CreateDB=
"CREATE DATABASE [ExampleDataBase] ON PRIMARY " +
"( NAME = N'ExampleDataBase', FILENAME ='" + Application.StartupPath + @"\ExampleDataBase.mdf" + "' , SIZE = 2048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )" +
" LOG ON " +
"( NAME = N'ExampleDataBase_log', FILENAME = '" + Application.StartupPath + @"\ExampleDataBase_log.ldf" + "' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%);"
string Command4CreateTable=
"CREATE TABLE ExampleDataBase.dbo.EgTable (" +
"[ID] [tinyint] IDENTITY(1,1) NOT NULL primary key," +
"[Col01] [nvarchar](32) NOT NULL," +
"[Col02] [nvarchar](32) NOT NULL)";
SqlCommand MySqlCommand = new SqlCommand(Command4CreateDB,MySqlConnection);
MySqlConnection.Open();
MySqlCommand .ExeNoneQuery();
MySqlConnection.Close();
SqlCommand MySqlCommand = new SqlCommand(Command4CreateTable,MySqlConnection);
MySqlConnection.Open();
MySqlCommand .ExeNoneQuery();
MySqlConnection.Close();

ببین این کد رو خودم تست نکردم همین جوری نوشتمش فقط یک تیکه باید بزاری که چک کنه ببینه دیتا بیس ساخته شده یا نه در این صورت دیگه دیتا بیس رو نسازه.دستورش هست توی اس کیو ال که سرچ کنه که یک دتابیس وجود داره یا نه.
موفق باشی

علیرضا حسن زاده
جمعه 17 اردیبهشت 1389, 11:52 صبح
اینو چک نکردم ولی تا جایی که میدونم این کار رو برای اکسس نمیشه انجام داد چون تو SQL قبل از ایجاد دیتابیس می تونی به مستر کانکت بشی و بعد از اون دستورات SQL رو اجرا کنی ولی در اکسس وقتی دیتا بیسی عملا وجود نداره، کانکشن استرینگ رو می خوای چی وارد کنی؟ اول باید یه ارتباط با موتور جت داشته باشی که بتونی دستورات رو اجرا کنی
به نظر من که بشه یه ارتباطی با Engine جت ایجاد کرد اونوقت بقیه کار حل میشه؟ رو این مسئله فکر کنید(از این لحاظ SQL و Access خیلی تفاوت دارن)

Saeed.Masoumi
جمعه 17 اردیبهشت 1389, 14:11 عصر
سلام
منم تو کد بالا به مستر وصل نشدم که نکنه:

Data Source=localhost;Integrated Security=Trueمیاد به مستر وصل میشه؟
لینک های زیر رو ببین:
How i Create Access Database at runtime (http://stackoverflow.com/questions/1388971/how-i-create-access-database-at-runtime-in-c)
Creating Access database at runtime in C# (http://p2p.wrox.com/general-net/18580-creating-access-database-runtime-c.html)
Create Table in a Database (http://www.developerfusion.com/code/3039/create-table-in-a-database/)

علیرضا حسن زاده
یک شنبه 19 اردیبهشت 1389, 15:43 عصر
سلام
منم تو کد بالا به مستر وصل نشدم که نکنه:
میاد به مستر وصل میشه؟
لینک های زیر رو ببین:
How i Create Access Database at runtime (http://stackoverflow.com/questions/1388971/how-i-create-access-database-at-runtime-in-c)
Creating Access database at runtime in C#‎ (http://p2p.wrox.com/general-net/18580-creating-access-database-runtime-c.html)
Create Table in a Database (http://www.developerfusion.com/code/3039/create-table-in-a-database/)
تا جایی که من متوجه شدم تو لینک های بالا از ADOX استفاده شده که همونی هست که تو زبان های Native استفاده میشه منظور من استفاده از ADO.NET هست از اون روش تو VB و ++VC خیلی استفاده کردم

hojjatshariffam
یک شنبه 19 اردیبهشت 1389, 21:56 عصر
من فکر می کنم باید از طریق پروسس (خود اکسس) اول یه فایل درست کنیم ، بعد روش یه کاراریی بکنیم که که برای ایجاد جداول آماده بش بعد جداول رو کرییت کنیم
نمی دونم فکرم کار نمی کنه دیگه

r00tkit
یک شنبه 19 اردیبهشت 1389, 23:00 عصر
You can't. You need the program to produce an Access database.
ADO.net is designed for accessing a variety of database servers(and specifically optimized for SQL server), not creating databases

you can only use it
http://blog.jrpsoftware.com/PermaLink,guid,edf0af2e-838a-4781-9543-13b22dee0ae9.aspx

علیرضا حسن زاده
سه شنبه 21 اردیبهشت 1389, 22:58 عصر
دقیقا نمی دونم ولی engine هر پایگاه داده ای قادر به ایجاد پایگاه داده های مورد پشتیبانیش هست معمولا و این در حالیکه Jet هم می تونه دریتابیس رو ایجاد کنه حالا تو دات نت با چه روشی امکان پذیره نمیدونم:متفکر:

ozzy_mra
یک شنبه 26 اردیبهشت 1389, 14:50 عصر
کسی بلد نیست؟

http://barnamenevis.org/forum/showthread.php?t=200939