PDA

View Full Version : سوال: تشخیص این که دیتابیس به اس کیو ال اتچ شده یا نه



rezarko
یک شنبه 19 آذر 1391, 17:17 عصر
سلام. چه طور میشه تشخیص داد که دیتابیس به اس کیو ال اتچ شده یا نه؟
باتشکر

masoodz
دوشنبه 20 آذر 1391, 11:00 صبح
سلام
یه تکست باکس بذار و نام دیتا بیس کانکشن رو توش بذار . اگه اجرا شد یعنی دیتا بیس موجود هست

rezarko
سه شنبه 21 آذر 1391, 19:00 عصر
راه دیگه ای نیست؟

vahidth
سه شنبه 21 آذر 1391, 19:15 عصر
منم میخوام بدونم که دیتابیس به پروژه اتچ شده یا نه
من دیتابیس رو detach کردم و بانک ها رو در فولدر bin پروژه ریختم سپس پروژه رو باز کردم کلیک راست و انتخاب گزینه add---Existing item رو انتخاب کردم و فایل دیتابیس رو به پروژه اضافه کردم حالا نمیدونم که دیتابیس به پروژه اتچ شده یا نه یعنی در سیستم دیگری بصورت کامل کار خواهد کرد یا نه

abdullah20
سه شنبه 21 آذر 1391, 19:27 عصر
try
{
SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=ABI-Z-PC\ABDULLAH20;Initial Catalog=master;Integrated Security=True";
con.Open();

string str = "use master;" +
"EXECUTE sp_attach_db @dbname = N'alarm' , " +
" @filename1 = N'" + System.Environment.CurrentDirectory + "\\Data\\alarm.mdf'," +
"@filename2 = N'" + System.Environment.CurrentDirectory + "\\Data\\alarm_log.ldf'";

SqlCommand cmd = new SqlCommand(str, con);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show(" شد Attach دیتابیس با موفقیت");

}

catch (Exception x)
{
if (x.Message.IndexOf("already exists") >= 0)
MessageBox.Show(" دیتابیس موجود است");

else
MessageBox.Show(x.Message);
}

alias136790
سه شنبه 21 آذر 1391, 19:30 عصر
try
{
SqlConnection sqlConn;
// sqlConn = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=master;Integrated Security=True;");
sqlConn = new SqlConnection(@"Data Source=JASON;Initial Catalog=master;Persist Security Info=True;User ID=sa;password=12345;");
sqlConn.Open();
// for detach just write: use master; EXECUTE sp_detach_db @dbname = N'acount_db'
string str = "use master;" +
"EXECUTE sp_attach_db @dbname = N'acount' , " +
" @filename1 = N'" + System.Environment.CurrentDirectory + "\\data\\acount.mdf' (file://\\data\\acount.mdf')," +
"@filename2 = N'" + System.Environment.CurrentDirectory + "\\data\\acount_log.ldf' (file://\\data\\acount_log.ldf')";
//"@filename3 = N'" + System.Environment.CurrentDirectory + "\\data\\acount_db_Log.ldf' (file://\\data\\acount_db_Log.ldf')";
SqlCommand cmd = new SqlCommand(str, sqlConn);
cmd.ExecuteNonQuery();
sqlConn.Close();
MessageBox.Show(" شد Attach دیتابیس با موفقیت");
}
catch (Exception x)
{
if (x.Message.IndexOf("already exists") >= 0)
MessageBox.Show(" دیتابیس موجود است");
else
MessageBox.Show(x.Message, "خطا");
}

که دستورات بالا دیتابیست رو اتچ میکنه ، اگه هم قبلا اتچ شده پیغام :دیتابیس موجود است و در غیر اینصورت پیغام خطای موردنظر رو میده.
البته باید کانکشن استرینگ دستورات بالا رو با توجه به سیستم و اس کیو ال و دیتابیس خودت درست کنی. هم چنین آدرس دیتابیس رو هم باید با توجه به سیستم خودت تنظیم کنی.
GoodLuck