在还原的时候为了杀死该数据库正在运行的所有进程,所以有下面一段
SQLDMO.QueryResults qr = srv.EnumProcesses(-1);
int iColPIDNum = -1;
int iColDbName = -1;
for (int i = 1; i <= qr.Columns; i++)
{
string strName = qr.get_ColumnName(i);
if (strName.ToUpper().Trim() == "SPID")
{
iColPIDNum = i;
}
else if (strName.ToUpper().Trim() == "DBNAME")
{
iColDbName = i;
}
if (iColPIDNum != -1 && iColDbName != -1)
break;
}
for (int i = 1; i <= qr.Rows; i++)
{
int lPID = qr.GetColumnLong(i, iColPIDNum);
string strDBName = qr.GetColumnString(i, iColDbName);
if (strDBName.ToUpper() == this.cboDatabase.Text.ToUpper())
{
srv.KillProcess(lPID);
}
}
其中EnumProcesses(-1)这句到底是什么意思啊?谁能给我解释一下这个方法,和参数为什么是 -1吗?
SQLDMO.QueryResults qr = srv.EnumProcesses(-1);
int iColPIDNum = -1;
int iColDbName = -1;
for (int i = 1; i <= qr.Columns; i++)
{
string strName = qr.get_ColumnName(i);
if (strName.ToUpper().Trim() == "SPID")
{
iColPIDNum = i;
}
else if (strName.ToUpper().Trim() == "DBNAME")
{
iColDbName = i;
}
if (iColPIDNum != -1 && iColDbName != -1)
break;
}
for (int i = 1; i <= qr.Rows; i++)
{
int lPID = qr.GetColumnLong(i, iColPIDNum);
string strDBName = qr.GetColumnString(i, iColDbName);
if (strDBName.ToUpper() == this.cboDatabase.Text.ToUpper())
{
srv.KillProcess(lPID);
}
}
其中EnumProcesses(-1)这句到底是什么意思啊?谁能给我解释一下这个方法,和参数为什么是 -1吗?
解决方案 »
- vs.net 2010 通过oledb连接 oracle数据库问题请教
- 怎么设置想delphi2010那样显示窗体在屏幕上位置的窗口?
- 二叉树的扩展性先序遍历的输入跳不出循环的?
- app.config的这样的字符串怎么写?
- (20分) 如何用C# winform编写C\S软件的数据库连接、访问等功能
- 为什么不能通过net start启动服务
- erp中如何处置可能导致负数据的情况呢?
- Remoting service怎么上传文件?
- 怎样把STRUCTURE类型的数据转化成BYTE数组类型
- WinForm下的DataGridView如何支持List<dynamic>的数据源?
- 高分求C#有没有类可以连接不同不同的数据库?
- 关于DataGrid的TemplateColumn的问题,请高人指点!
取Columns 意味着列名 数据库名的索引。
取row 表示该行的数据库信息。
string strDBName = qr.GetColumnString(i, iColDbName);
就是找到该行取得该数据库名,看该条是否是要停止的数据库。
这么简单的代码看不过来。我 〉:
关键是srv.EnumProcesses(-1)这个函数的使用,参数-1的含义。
object
.EnumProcesses( [ WhoByNameOrID ] )as QueryResults
Parts
object
Expression that evaluates to an object in the Applies To list.WhoByNameOrID
String or small integer that identifies a login name or process ID.
//-1表示列举所有的SQL Server的进程实列