rezajafary
جمعه 04 اردیبهشت 1388, 01:20 صبح
با سلام
امیدوارم یکی پیدا بشه جواب این سوال من رو بده.
دوستان میخواستم بدونم چطور میشه یه لیست از تمام connection هایی که به data base ما متصل هستند بدست بیارم.
راستش من برا یه برنامه کوچیک از sql Express استفاده کردم ، از database backup میگیرم ولی وقت restore کردن خطا میده که دیتابیس در حال استفاده میباشد.
کد restor من اینه :
try
{
openFileDialog1.DefaultExt = "bak";
openFileDialog1.FileName = "c:\\databasebackup";
openFileDialog1.Filter = "Backup files (*.bak)|*.bak";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = "Demo Restore File Dialog";
string str = openFileDialog1.FileName;
SqlConnection Cnn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename='D:\\navab safavi software\\navab\\dg.mdf'" + ";Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand s = new SqlCommand("RESTORE DATABASE @name FROM DISK ='" + str + "' WITH REPLACE", Cnn);
s.Parameters.AddWithValue("@name", "D:\\navab safavi software\\navab\\dg.mdf");
Cnn.Open();
Cnn.ChangeDatabase("master");
label1.Text = Cnn.Database.ToString();
s.ExecuteNonQuery();
Cnn.Close();
MessageBox.Show("عمليات بازيابي با موفقيت انجام پذيرفت");
this.Close();
}
catch(Exception exp)
{
MessageBox.Show(exp.Message);
}
اگه این کد رو به عنوان صفحه اول برنامه یعنی قبل از اینکه هیچ connection دیگه ای بخوام ایجاد کنم ، اجرا کنم با موفقیت عملیات restore رو انجام میده.
اما اگه با اجرای برنامه صفحه login رو لود کنم باعث میشه که یه connection ایجاد بشه البته این connection نمودونم اسمش چیه اخه در صفحه login از select query به صورت wizard استفاده کردم و نمودونم ساختار اتصال به database وقتی از wizard استفاده مکنم چیه چه connectionای ایجاد میکنه که لا اقل خودم به صورت دستی closeاش کنم.
برای همین تنها راهی که به نظرم مییاد اینه که بتونم ابتدای صفحه ، تمتم connection های فعال رو ببندم.
میدونم که قصه طولانی شد
امیدوارم یه نفر کار درست پیدا بشه این متن رو بخونه و یه راهی جلوی پتی من بزاره
در ضمن کد صفحه login هم که فکر میکنم یه connection به databaseایجاد میکنه اینه
managersTableAdapter.FillBy(this.navabDataSet.mana gers, textBox1.Text, textBox2.Text);
ممنونم که وقت گذاشتید و این سوال رو خوندید حتی اگه جواب هم ندادید باز هم ممنون ا وقتتون که صرف کردید.
به امید جواب کار راه انداز.
امیدوارم یکی پیدا بشه جواب این سوال من رو بده.
دوستان میخواستم بدونم چطور میشه یه لیست از تمام connection هایی که به data base ما متصل هستند بدست بیارم.
راستش من برا یه برنامه کوچیک از sql Express استفاده کردم ، از database backup میگیرم ولی وقت restore کردن خطا میده که دیتابیس در حال استفاده میباشد.
کد restor من اینه :
try
{
openFileDialog1.DefaultExt = "bak";
openFileDialog1.FileName = "c:\\databasebackup";
openFileDialog1.Filter = "Backup files (*.bak)|*.bak";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = "Demo Restore File Dialog";
string str = openFileDialog1.FileName;
SqlConnection Cnn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename='D:\\navab safavi software\\navab\\dg.mdf'" + ";Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand s = new SqlCommand("RESTORE DATABASE @name FROM DISK ='" + str + "' WITH REPLACE", Cnn);
s.Parameters.AddWithValue("@name", "D:\\navab safavi software\\navab\\dg.mdf");
Cnn.Open();
Cnn.ChangeDatabase("master");
label1.Text = Cnn.Database.ToString();
s.ExecuteNonQuery();
Cnn.Close();
MessageBox.Show("عمليات بازيابي با موفقيت انجام پذيرفت");
this.Close();
}
catch(Exception exp)
{
MessageBox.Show(exp.Message);
}
اگه این کد رو به عنوان صفحه اول برنامه یعنی قبل از اینکه هیچ connection دیگه ای بخوام ایجاد کنم ، اجرا کنم با موفقیت عملیات restore رو انجام میده.
اما اگه با اجرای برنامه صفحه login رو لود کنم باعث میشه که یه connection ایجاد بشه البته این connection نمودونم اسمش چیه اخه در صفحه login از select query به صورت wizard استفاده کردم و نمودونم ساختار اتصال به database وقتی از wizard استفاده مکنم چیه چه connectionای ایجاد میکنه که لا اقل خودم به صورت دستی closeاش کنم.
برای همین تنها راهی که به نظرم مییاد اینه که بتونم ابتدای صفحه ، تمتم connection های فعال رو ببندم.
میدونم که قصه طولانی شد
امیدوارم یه نفر کار درست پیدا بشه این متن رو بخونه و یه راهی جلوی پتی من بزاره
در ضمن کد صفحه login هم که فکر میکنم یه connection به databaseایجاد میکنه اینه
managersTableAdapter.FillBy(this.navabDataSet.mana gers, textBox1.Text, textBox2.Text);
ممنونم که وقت گذاشتید و این سوال رو خوندید حتی اگه جواب هم ندادید باز هم ممنون ا وقتتون که صرف کردید.
به امید جواب کار راه انداز.