C#做还原数据库时发生如下错误:从服务器接收结果时发生传输级错误。(provider: 共享内存提供程序, error: 1 -执行读\写期间检测到I\O错误
这是做还原数据库代码,不知道怎么解决,麻烦会的帮助一下,谢谢。try
{
if (DataClass.MyMeans.My_con.State == ConnectionState.Open)
{
DataClass.MyMeans.My_con.Close();
}
string DateStr = "Data Source=HP-D2BB9C8AE0AF;Database=master;User id=sa;PWD=";
SqlConnection conn = new SqlConnection(DateStr);
conn.Open();
//-------------------杀掉所有连接 金矿监控 数据库的进程--------------
string strSQL = "select spid from master..sysprocesses where dbid=db_id( '金矿监控') ";
SqlDataAdapter Da = new SqlDataAdapter(strSQL, conn);
DataTable spidTable = new DataTable();
Da.Fill(spidTable);
SqlCommand Cmd = new SqlCommand();
Cmd.CommandType = CommandType.Text;
Cmd.Connection = conn;
for (int iRow = 0; iRow < spidTable.Rows.Count; iRow++)
{
Cmd.CommandText = "kill " + spidTable.Rows[iRow][0].ToString(); //强行关闭用户进程
Cmd.ExecuteNonQuery();
}
conn.Close();
conn.Dispose();
SqlConnection Tem_con = new SqlConnection(DataClass.MyMeans.M_str_sqlcon);
Tem_con.Open();
SqlCommand SQLcom = new SqlCommand("backup log 金矿监控 to disk='"
+ textBox3.Text.Trim() + "'use master restore database 金矿监控 from disk='"
+ textBox3.Text.Trim() + "'", Tem_con);
SQLcom.ExecuteNonQuery();
SQLcom.Dispose();
Tem_con.Close();
Tem_con.Dispose();
MessageBox.Show("数据还原成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
MyDataClass.con_open();
MyDataClass.con_close();
MessageBox.Show("为了避免数据丢失,在数据库原还后将关闭整个系统。");
Application.Exit();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
} --------------------编程问答-------------------- 你的这种方法不行的,你Kill掉了数据库服务进程,你还怎么还原和备份数据??? --------------------编程问答--------------------
必须得先kill掉得 --------------------编程问答--------------------
http://www.cnblogs.com/goody9807/archive/2005/09/06/231057.html
补充:.NET技术 , C#