PDA

View Full Version : حرفه ای: خطا در هنگام بازيابي بانك اطلاعاتي



dab_hrd
یک شنبه 21 اردیبهشت 1393, 12:40 عصر
با سلام
من به ازبانك اطلاعاتي خودم ژشتيبان با پسوند bak تهيه مي كنم اما زماني كه مي خواهمبا استفاده از دستورات ذيل بازخواني خطا مي دهدچه كنم؟
private void btn_restore_Click(object sender, EventArgs e)
{
MessageBox.Show("! " + "پیشنهاد می شود جهت بازیابی اطلاعات با برنامه نویس سیستم تماس حاصل نمایید ");
string strFileName = "";//string.Empty;
openFileDialog1.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files (*.*) |*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = "Restore SQL File";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
strFileName = openFileDialog1.FileName;
Restore(strFileName);
this.Close();
}
}
//*******
private void Restore(string strFileName)
{
try
{
string command = "ALTER DATABASE zomorod SET SINGLE_USER with ROLLBACK " +
"IMMEDIATE " +
"use master " +
" RESTORE DATABASE zomorod FROM DISK='" + strFileName + "'";
this.Cursor = Cursors.WaitCursor;
SqlCommand oCommand = null;
SqlConnection oConnection = null;
oConnection = new SqlConnection("Data Source=.;Initial Catalog=zomorod;Integrated Security=True");
if (oConnection.State != ConnectionState.Open)
oConnection.Open();
oCommand = new SqlCommand(command, oConnection);
oCommand.ExecuteNonQuery();
this.Cursor = Cursors.Default;
MessageBox.Show("بازيابی اطلاعات از نسخه پشتيبان با موفقيت انجام شد","بازیابی اطلاعات");
}//*try
catch (Exception ex)
{
MessageBox.Show(ex.Message, "خطای سیستمی");
}
}

118861

علی فتحی
دوشنبه 22 اردیبهشت 1393, 22:39 عصر
بهترین بازیابی و پشتیبان بدون مورد


private void پشتیبانگیریToolStripMenuItem_Click(obje ct sender, EventArgs e)

{


try

{



SqlConnection sq = new SqlConnection("data source=.\\SQLEXPRESS;attachdbfilename=|datadirecto ry|\\Datag.mdf;integrated security=true;user instance=true");


SaveFileDialog sfd = new SaveFileDialog();

sfd.Filter =
"*.bak|*.bak";


if (sfd.ShowDialog() == DialogResult.OK)

{


SqlCommand com = new SqlCommand("Backup database [" + Application.StartupPath + "\\Datag.mdf] to disk ='" + sfd.FileName + "' with format", sq);

sq.Open();

com.ExecuteNonQuery();

sq.Close();




}


MessageBox.Show("پشتیبان گیری با موفقیت انجام شد");

}


catch (Exception)

{


MessageBox.Show("اخطار :" + "پشتیبان گیری انجام نشد");

}


}



private void بازیابیToolStripMenuItem_Click(object sender, EventArgs e)

{


try

{



SqlConnection sq = new SqlConnection("data source=.\\SQLEXPRESS;attachdbfilename=|datadirecto ry|\\Datag.mdf;integrated security=true;user instance=true");


OpenFileDialog ofd = new OpenFileDialog();

ofd.Filter =
"*.bak|*.bak";


if (ofd.ShowDialog() == DialogResult.OK)

{


string query = "ALTER DATABASE [" + Application.StartupPath + "\\Datag.mdf] SET SINGLE_USER with ROLLBACK IMMEDIATE use master RESTORE DATABASE [" + Application.StartupPath + "\\Datag.mdf] FROM DISK='" + ofd.FileName + "'";


SqlCommand com = new SqlCommand(query, sq);

sq.Open();

com.ExecuteNonQuery();

sq.Close();

}


MessageBox.Show("بازیابی انجام شد .");

}


catch (Exception)

{


MessageBox.Show("اخطار:" +"این فایل پشتیبان با برنامه همخوانی ندارد");

}

}