怎样恢复被杀死的进程

jacklee_008 2008-08-21 01:52:17
如下代码用在数据库还原中,用于杀死连接数据库的进程,问题是:数据库还原成功后无法继续对数据库操作,除非重启客户端,代码如下:
private void KillSPID(string DBName)
{
string strDBName = DBName;
string strSQL = String.Empty, strSQLKill = String.Empty;
//因为DataReader独占连接,本程序需要两个Connection,并且连接的数据库是master,所以要初始化新的连接字符串
string tmpConnectionString = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=master;";

try
{
SqlConnection TmpConn = new SqlConnection();
SqlConnection conn = new SqlConnection();
TmpConn.ConnectionString = tmpConnectionString;
conn.ConnectionString = tmpConnectionString;
TmpConn.Open();
conn.Open();

//读取连接当前数据库的进程
strSQL = "select spid from master..sysprocesses where dbid=db_id('" + strDBName + "')";
SqlCommand mycmd = new SqlCommand(strSQL, TmpConn);
SqlDataReader mydr = mycmd.ExecuteReader();

//开取杀进程的数据连接
SqlCommand mycmd1 = new SqlCommand();
mycmd1.Connection = conn;

while (mydr.Read())
{
strSQLKill = "kill " + mydr["spid"].ToString();
mycmd1.CommandText = strSQLKill;
mycmd1.CommandType = CommandType.Text;
mycmd1.ExecuteNonQuery(); //杀进程
}
mydr.Close();
TmpConn.Close();
conn.Close();
}
catch (Exception Err)
{
MessageBox.Show(Err.Message);
}
}
有什么方法,使客户端不用重启,就能继续操作数据库吗??
...全文
425 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacklee_008 2008-08-25
  • 打赏
  • 举报
回复
好久了没人啊
高手呢
jacklee_008 2008-08-25
  • 打赏
  • 举报
回复
有人吗
jacklee_008 2008-08-21
  • 打赏
  • 举报
回复
能具体点吗??
LQknife 2008-08-21
  • 打赏
  • 举报
回复
Process.Start 你的应用程序
jacklee_008 2008-08-21
  • 打赏
  • 举报
回复
没人
jacklee_008 2008-08-21
  • 打赏
  • 举报
回复
在线等呀
jacklee_008 2008-08-21
  • 打赏
  • 举报
回复
有人在吗??

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧