PDA

View Full Version : سوال: کپی گرفتن از دیتا بیس



group45
شنبه 30 مرداد 1389, 13:03 عصر
با سلام
من یه برنامه که بادیتابیس کار میکنه رو نوشتم. حالا که میخوام از طریق یه دکمه یه کپی از دیتابیس رو بگیرم میگه چون داری با دیتابیس کار میکنی اجازه کپی نداری.
به نظر شما اگه sql رو stop کنم میشه؟؟؟
چطور؟؟؟؟
راه دیگه ای به ذهنتون میرسه؟؟

mmd2009
شنبه 30 مرداد 1389, 13:07 عصر
با سلام. راهی که میشه گفت اینه که بانک مربوطه رو اول Detach کنید.

این راهو رفتید؟؟!

mohammad_2039
شنبه 30 مرداد 1389, 13:09 عصر
منظورت Backup هستش ؟ سرچ کن کدهاش تو این سایت هست من استفاده کردم و مشکلی هم نبود. در بخش "برنامه های کوچک و مفید #C " نمونه هست.

group45
شنبه 30 مرداد 1389, 13:46 عصر
با سلام. راهی که میشه گفت اینه که بانک مربوطه رو اول Detach کنید.

این راهو رفتید؟؟!


نرفتم.از طریق کد میشه؟ چطوری؟؟؟؟؟؟



منظورت Backup هستش ؟

نه. میخوام زیپش کنم.

حتی با کلیپ بورد هم امتحان کردم بازم همین آشه و همین کاسه!!!!!!!

s.khoshfekran
شنبه 30 مرداد 1389, 15:07 عصر
شما باید اول دیتابیس رو Detach کنی بعدش به zip تبدیل کنی!!

group45
یک شنبه 31 مرداد 1389, 17:56 عصر
ممنون از راهنمای تون.یه کدایی واسه detach پیدا کردم بعد اینکه کارم انجام شد دوباره باید دیتابیس رو attach کنم؟
!!!!!!!! من دیتا بیس رو اول برنامه attach نکردم آیا واسه detach شدن قبلش باید attach باشه؟ !!!!!!!!!

mmd2009
یک شنبه 31 مرداد 1389, 17:58 عصر
خب وقتی attach نیست چطور detach میخواهید بکنید ؟

group45
یک شنبه 31 مرداد 1389, 20:05 عصر
من کانکشن استرینگم رو اینجوری تعریف کردم:



public SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\library 45\db1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

واسه detach اینا رو نوشتم:



com.CommandText = "sp_detach_db @dbname = N'Db1'";
com.Connection = con;
con.Open();
com.ExecuteNonQuery();
MessageBox.Show("ارتباط با بانک اطلاعاتی قطع شد");
con.Close();
ولی روی خط com.ExecuteNonQuery خطای زیر رو میده:

The database 'Db1' does not exist. Supply a valid database name. To see available databases, use sys.databases.

لطفا راهنمایی کنید..........

aghayex
دوشنبه 05 مهر 1389, 06:28 صبح
SqlConnection sqlcon = newSqlConnection("Data Source=.\\SQLEXPRESS;initial catalog=master;Integrated security=true");
SqlDataAdapter sqlda = newSqlDataAdapter();
sqlda.SelectCommand = newSqlCommand();
sqlda.SelectCommand.Connection = sqlcon;
DataTable shar = newDataTable();
sqlda.SelectCommand.CommandText = "select * from sys.databases where name='" + AppDomain.CurrentDomain.BaseDirectory + "db\\Database1.mdf'";
sqlcon.Open();
sqlda.SelectCommand.ExecuteNonQuery();
sqlda.Fill(shar);
if (shar.Rows.Count > 0)
{
sqlda.SelectCommand.CommandText = "sys.sp_detach_db '" + AppDomain.CurrentDomain.BaseDirectory + "db\\Database1.mdf'";
sqlda.SelectCommand.ExecuteNonQuery();
}
sqlcon.Close();
SqlConnection.ClearPool(sqlcon);
sqlcon.Dispose();