PDA

View Full Version : سوال: چطور میشه به بانک اطلاعات attach شد.



m.h.movahedi
سه شنبه 09 آذر 1389, 16:01 عصر
سلام دوستان

چطور میشه به بانک اطلاعات attach شد.ایا برای ایجاد بانک تنها دستور create date base ,attach کافیه یا باید از قبل ابتدا فایل فیزیکی اش رو اماده کرد اگه اینطوره چطور.(من مبتدی هستم اگه کسی لطف کنه کامل توضیح بده ممنون میشم.

رها
سه شنبه 09 آذر 1389, 16:25 عصر
دستور create database مسیر ذخیره فایلهای فیزیکی رو هم میگیره و خودش اون فایلها رو میسازه

m.h.movahedi
سه شنبه 09 آذر 1389, 17:04 عصر
دستور create database مسیر ذخیره فایلهای فیزیکی رو هم میگیره و خودش اون فایلها رو میسازه



میشه یه مثال از کل کد بزنی ممنون

hossin.esm
سه شنبه 09 آذر 1389, 17:27 عصر
می تونی فایل رو ایجاد کنی و از کانکشن زیر برای attach و اتصال به دیتابیس استفاده کنی.
مسیر فایل همان مسیر فایل اجرایی است
این کانکشن را می تونی به صورت ویزارد هم به راحتی ایجاد کنی.



SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\File.mdf;Integrated Security=True;Connect Timeout=30");

sajadjamalian
سه شنبه 09 آذر 1389, 18:43 عصر
سلام دوست عزیز:
یه سوال داشتم،
آیا بانکی رو که از طریق کد بالا میخوایم بهش وصل بشیم رو باید حتما با sql express طراحی کرده باشیم یا خیر؟ و آیا حتما باید این نسخه از sql روی کامپیوتر مقصد نصب باشه؟

hossin.esm
سه شنبه 09 آذر 1389, 19:26 عصر
سلام دوست عزیز:
یه سوال داشتم،
آیا بانکی رو که از طریق کد بالا میخوایم بهش وصل بشیم رو باید حتما با sql express طراحی کرده باشیم یا خیر؟ و آیا حتما باید این نسخه از sql روی کامپیوتر مقصد نصب باشه؟
نه لزومی نیست با sqlexpress طرحی شده باشد . و نسخه sql روی کامپیوتر مقصد می تونه از این نوع نباشد ولی باید از این کانکشن پشتیبانی کند

sajadjamalian
سه شنبه 09 آذر 1389, 19:50 عصر
دوست عزیز ممنون از توجهت:
میشه کمی بیشتر توضیح بدی و بگی که منظورت از اینکه باید از این کانکشن پشتیبانی کند یعنی چی؟ ممنون.

hossin.esm
سه شنبه 09 آذر 1389, 20:42 عصر
فکر کنم از یک ورژن x به بالا این کانکشن را پشتیبانی می کنند مثلا sql express همراه vs2005

m.h.movahedi
سه شنبه 09 آذر 1389, 21:48 عصر
من از دستو زیر استفاده میکنم که خطا میده ممکنه یکی اصلاحش کنه
ویک نمونه کد attach هم بذاره(مثالش)

sql_connection = new SqlConnection(connection_string);
if (sql_connection.State == ConnectionState.Open)
sql_connection.Close();
connection_string = "Integrated Security=SSPI;Initial Catalog=master;Data Source=.\\SQLEXPRESS;";
sql_connection.ConnectionString = connection_string;
sql_connection.Open();

sql_order = "CREATE DATABASE HOTEL On Primary (Name=HOTEL_Data,Filename='" + Directory.GetCurrentDirectory() + "\\SQL#\\HOTEL.Mdf',size=50)"
+ "Log on (Name=HOTEL_Log,FileName='" + Directory.GetCurrentDirectory() + "\\SQL#\\HOTEL.Ldf',size=50)";
sql_command = new SqlCommand(sql_order, sql_connection);
sql_command.CommandType = CommandType.Text;
sql_command.ExecuteNonQuery();
sql_connection.Close();


که خطا میده




"Directory lookup for the file \"F:\\C-prog\\HOTEL\\HOTEL\\bin\\Debug\\SQL#\\HOTEL.Mdf\" failed with the operating system error 2(The system cannot find the file specified.).\r\nCREATE DATABASE failed. Some file names listed could not be created. Check related errors."}

hossin.esm
سه شنبه 09 آذر 1389, 23:13 عصر
دوست عزیز شما مسیر فایل دیتابیس را خود درایو c قرار بده ببین دیتابیس ایجاد می شه.




sql_order =

"CREATE DATABASE HOTEL On Primary (Name=HOTEL_Data,Filename='c:\\HOTEL.Mdf',size=50) Log on (Name=HOTEL_Log,FileName='c:\\HOTEL.Ldf',size=50)";