PDA

View Full Version : مشكل در restore كردن پايگاه داده



samandario
جمعه 30 مرداد 1394, 09:21 صبح
با سلام

من با استفاده از كد زير backup ميگيرم و فايل هم ذخيره مي شود. بعد از restore گرفتن هم برنامه پيغام بازيابي موفق رو ميده اما database بازيابي نميشه و به همون شكل سابق مي مونه!!!!!!!!!!!

لطفا" راهنمايي كنيد.

ممنون

//back UP


private void پشتيبان گيري ازداده هاToolStripMenuItem_Click(object sender, EventArgs e)
{


SaveFileDialog sfd = new SaveFileDialog();
sfd.FileName = DateTime.Now.ToString("ddMMyy_HHmmss");
sfd.Filter = "BackupFile(*.Bak)|*.Bak";
if(sfd.ShowDialog()==DialogResult.OK)
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\reception.mdf ;Integrated Security=True;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;
cmd.Connection.Close();
SqlConnection.ClearAllPools();
string query = "BACKUP DATABASE [" + Application.StartupPath + @"\reception.mdf] TO DISK = '" + sfd.FileName + "'";
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True");
cmd.Connection.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
cmd.Connection.Close();
this.Refresh();
MessageBox.Show("پايگاه داده با موفقيت پشتيبان گيري شد", "گزارش", MessageBoxButtons.OK);
}
catch
{
MessageBox.Show("عمليات ناموفق بود", "خطا", MessageBoxButtons.OK);
}


}


//restor




private void بازيابي اطلاعات پايگاه دادهToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "BackupFile(*.Bak)|*.Bak";


if(ofd.ShowDialog()==DialogResult.OK)
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\reception.mdf ;Integrated Security=True;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;
cmd.Connection.Close();
string query = "ALTER DATABASE ["+Application.StartupPath+@"\reception.mdf] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; RESTORE DATABASE ["+Application.StartupPath+ @"\reception.mdf] FROM DISK = '"+ofd.FileName+"'; ALTER DATABASE ["+Application.StartupPath+@"\reception.mdf] SET MULTI_USER;";
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True");
cmd.Connection.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
cmd.Connection.Close();
this.Refresh();
MessageBox.Show("پايگاه داده با موفقيت بازيابي شد", "گزارش", MessageBoxButtons.OK);
}
catch
{
MessageBox.Show("عمليات ناموفق بود", "خطا", MessageBoxButtons.OK);
}

}

samandario
یک شنبه 01 شهریور 1394, 07:43 صبح
کسی از مهندسین نیست که جواب رو بلد باشه؟؟؟؟؟؟