string connectionString1 = (@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Database=Database1;Integrated Security=True; User Instance=True");
SqlConnection cn = new SqlConnection(connectionString1);
cn.Open();
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
cmd.CommandText = @"BACKUP DATABASE Database1 TO DISK = 'C:\SRI2Works.bak'";
cmd.CommandType = CommandType.Text;
cmd.Connection = cn;
reader = cmd.ExecuteReader();
cn.Close();
MessageBox.Show("Database Backup Successfull.");
恢复
string connectionString1 = (@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Database=Database1;Integrated Security=True; User Instance=True");
SqlConnection cn = new SqlConnection(connectionString1);
cn.Open();
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
cmd.CommandText = @"use master; RESTORE DATABASE Database1 FROM DISK = 'C:\SRI2Works.bak'";
cmd.CommandText = "DBCC CHECKDB ('Database1')";
cmd.CommandType = CommandType.Text;
cmd.Connection = cn;
reader = cmd.ExecuteReader();
cn.Close();
MessageBox.Show("Database Restored Successfull.");
这段代码成功运行,但不进行任何更改。
您是如何验证代码确实被执行的?消息框是否触发? – usr 2013-04-06 15:29:53
文件'C:\ SRI2Works.bak'实际写入了吗?而且,实际上,您的恢复命令仅执行'DBCC CHECKDB('Database1')',它取代了上面一行中设置的'CommandText'。 – 2013-04-06 15:34:50
@ThomasGerstendörfer好抓! OP应该使用SQL事件探查器来验证预期的命令是否被实际发送。 – usr 2013-04-06 15:41:21