数据库还原问题
cmd.CommandText=@ "RESTORE DATABASE "+DBName+ " from disk= ' "+backupFile+ " ' ";
cmd.CommandType=CommandType.Text;
cmd.ExecuteNonQuery();
在查询分析器里能通过,为什么用cmd.ExecuteNonQuery();不行?
------解决方案--------------------楼主至少应该给出一个错误提示
------解决方案--------------------@ "RESTORE DATABASE "+DBName+ " from disk= ' "+backupFile+ " ' "
是否正确
------解决方案--------------------在使用此代码还原数据库前 应该首先kill掉该数据库的其它使用dbid 例如:
conn是master系统数据库的连接
//获取所有用户进程
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 - 1; iRow++)
{
Cmd.CommandText= "kill " + spidTable.Rows[iRow][0].ToString(); //强行关闭用户进程
Cmd.ExecuteNonQuery();
}