有时候我们在操作数据库的时候会提示当前有一个或多个进程在使用数据库,访问被拒绝,这时我们就需要查看服务器中那些访问我们需要操作的数据库的进程,然后把它们全部都结束掉(除了本访问进程外),这些进程都是会被存在公共数据库master数据库的sysprocesses表中,所以我们必须先把他们给拿出来然后一个一个结束掉.
///其中db_name是你所要操作的数据库
SqlConnection conn;
conn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=db_name;");
conn.Open();
string sql1 = "select spid from master..sysprocesses where dbid=db_id('db_name')";
SqlDataAdapter Da = new SqlDataAdapter(sql1, conn);
DataTable spidTable = new DataTable();
Da.Fill(spidTable);//把进程名称放到DataTable中
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
if (spidTable.Rows.Count > 1)//只留下一个
{
//强制结束掉所有链接AnalysisSystem数据库的进程
for (int irow = 0; irow < spidTable.Rows.Count - 1; irow++)
{
cmd.CommandText = "kill" + spidTable.Rows[irow].ToString();//关闭用户进程语句
cmd.ExecuteNonQuery();
}
}
conn.Close();
conn.Dispose();
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |