首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

数据库还原有关问题

2012-01-14 
数据库还原问题cmd.CommandText@ RESTOREDATABASE+DBName+ fromdisk+backupFile+ cmd.CommandTyp

数据库还原问题
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();
}

热点排行