在还原的时候为了杀死该数据库正在运行的所有进程,所以有下面一段
 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吗?

解决方案 »

  1.   

    返回数据库管理的数据库信息。就是sql server中的用户数据库信息列表。
      取Columns 意味着列名 数据库名的索引。
      取row 表示该行的数据库信息。
       
      string strDBName = qr.GetColumnString(i, iColDbName);
      就是找到该行取得该数据库名,看该条是否是要停止的数据库。
      这么简单的代码看不过来。我 〉:
      

  2.   

    我不问你其他的 ,我只问EnumProcesses(-1)的意思,谁回答出来就给分。其他的无关问题无需解答。谢谢!!!!!上面那位写了一大串却只字未提我问的‘其中EnumProcesses(-1)这句到底是什么意思啊?谁能给我解释一下这个方法,和参数为什么是 -1吗?’。无语一下
      

  3.   

    返回数据库信息,我当然知道。
    关键是srv.EnumProcesses(-1)这个函数的使用,参数-1的含义。
      

  4.   

    The EnumProcesses method returns a QueryResults object that enumerates the Microsoft SQL Server processes running on a referenced instance of Microsoft SQL Server.Syntax
     
    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的进程实列