PDA

View Full Version : سوال: بازیابی اطلاعات در سی شارپ



enekas
یک شنبه 15 مرداد 1391, 10:16 صبح
سلام
من میخوام در برنامه ام عمل پشتیبانی و بازیابی اطلاعات را انجام بدم
کد پشتیبانی عمل میکنه اما برای بازیابی برنامه کد زیر را دادم ام خطای master میگیره
لطفا راهنمایی کنید


private void Restore(string strFileName)
{
try
{
string command = "ALTER DATABASE doctor SET SINGLE_USER with ROLLBACK IMMEDIATE " + "use master " + " RESTORE DATABASE doctor FROM DISK='" + strFileName + "'";
SqlCommand oCommand = null;
SqlConnection oConnection = null;
oConnection = new SqlConnection("Data Source=.;Initial Catalog=doctor;Integrated Security=True");
if (oConnection.State == ConnectionState.Closed)
{
oConnection.Open();
oCommand = new SqlCommand(command, oConnection);
oCommand.ExecuteNonQuery();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

nilmil_nil
یک شنبه 15 مرداد 1391, 11:46 صبح
public static void RestoreDatabase2(string strAddress)
{
string ConStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DataBeh.MDF;Integrated Security=True;User Instance=true";
SqlConnection con1 = new SqlConnection(ConStr);
SqlCommand com1 = new SqlCommand();
if (con1.State != ConnectionState.Open)
con1.Open();
com1.Connection = con1;

com1.CommandText = "ALTER DATABASE ["+Application.StartupPath + "\\DataBeh.MDF] SET SINGLE_USER WITH ROLLBACK IMMEDIATE USE master RESTORE DATABASE [" + Application.StartupPath + "\\DataBeh.MDF] FROM DISK = N'" + strAddress + "' WITH FILE=1 , NOUNLOAD,REPLACE, STATS=10";
com1.ExecuteNonQuery();
con1.Close();
}


conection String رو با برنامه خودت تغییر بده :)

homayon_azizi
یک شنبه 15 مرداد 1391, 12:51 عصر
من رو پروژه خودم اینو نوشتم الانم کار میکنه

این سورس backup :




try
{
string command = "BACKUP DATABASE [" + System.Windows.Forms.Application.StartupPath + "\\secretariat.mdf] TO DISK='" + s + "'";
this.Cursor = Cursors.WaitCursor;
SqlCommand oCommand = null;
SqlConnection oConnection = null;
oConnection = new SqlConnection("Data Source=.\\SQLEXPRESS; AttachDbFilename=" + Application.StartupPath + "\\secretariat.mdf; Integrated Security=True; Connect Timeout=30; User Instance=True");
if (oConnection.State != ConnectionState.Open)
oConnection.Open();
oCommand = new SqlCommand(command, oConnection);
Application.DoEvents();
System.Threading.Thread.Sleep(5000);
oCommand.ExecuteNonQuery();
label2.Visible = true;
timer1.Enabled = true;
}
catch
{
MessageBox.Show("ارتباط با سرور قطع است ، لطفاٌ بعداٌ امتحان کنید", "توجه", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.Cursor = Cursors.Default;
}



اینم کد مربوط به restore :




try
{
SqlConnection sq = new SqlConnection("Data Source=.\\SQLEXPRESS; AttachDbFilename=" + Application.StartupPath + "\\secretariat.mdf; Integrated Security=True; Connect Timeout=30; User Instance=True");
this.Cursor = Cursors.WaitCursor;
string query = "ALTER DATABASE [" + Application.StartupPath + "\\secretariat.mdf] SET SINGLE_USER WITH ROLLBACK IMMEDIATE USE master RESTORE DATABASE [" + Application.StartupPath + "\\secretariat.mdf] FROM DISK = N'" + s + "' WITH FILE=1 , NOUNLOAD,REPLACE, STATS=10";
SqlCommand com = new SqlCommand(query, sq);
sq.Open();
Application.DoEvents();
System.Threading.Thread.Sleep(5000);
com.ExecuteNonQuery();
label2.Visible = true;
timer1.Enabled = true;
sq.Close();
}
catch
{
MessageBox.Show("ارتباط با سرور قطع است ، لطفاٌ بعداٌ امتحان کنید","توجه",MessageBoxButtons.OK,MessageBoxIcon.Warning);
this.Cursor = Cursors.Default;
}

aqawae
یک شنبه 15 مرداد 1391, 13:04 عصر
قبل از كد
SqlConnection sq = new SqlConnection("Data Source=.\\SQLEXPRESS; AttachDbFilename=" + Application.StartupPa
دستورات زير بنويس
private Server sqlServer;
sqlServer = new Server(".\\sqlexpress");
sqlServer.KillAllProcesses("db_baskol");
اگر رفرنس سرور پيدا نشد از ادرس زير تمام فايل هاي دي ال ال به پروژه ات اضافه كن

aqawae
یک شنبه 15 مرداد 1391, 13:05 عصر
بل از كد
SqlConnection sq = new SqlConnection("Data Source=.\\SQLEXPRESS; AttachDbFilename=" + Application.StartupPa
دستورات زير بنويس
private Server sqlServer;
sqlServer = new Server(".\\sqlexpress");
sqlServer.KillAllProcesses("db_baskol");
اگر رفرنس سرور پيدا نشد از ادرس زير تمام فايل هاي دي ال ال به پروژه ات اضافه كن
C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies

ali_habibi1384
یک شنبه 15 مرداد 1391, 15:05 عصر
پشتيبان گيري و بازيابي اطلاعات (http://barnamenevis.org/showthread.php?323295-%D9%BE%D8%B4%D8%AA%DB%8C%D8%A8%D8%A7%D9%86-%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A8%D8%A7%D8%B2%DB%8C%D8%A7%D8%A8%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-SQL)

enekas
دوشنبه 16 مرداد 1391, 13:15 عصر
دوستان
بانک اطلاعاتی من sql 2008 است و از بانک اطلاعاتی خود سی شارپ استفاده نکردم
گفتم شاید اشکال از این باشه

آیا کد بازیابی بازم همونه یا تفاوت داره؟

NasimBamdad
دوشنبه 16 مرداد 1391, 14:43 عصر
C# که بانک نداره شما باید یکی از نسخه های SQL SERVER 2008 رو نصب کنید

اونی که با خود C# نصب میشه SQL EXPRESS هست فکر ککنم