恢复完数据库后可以创建新的连接.
但这个连接却不用用.
报错说是"常规网络错误"
这个可以解决吗?

解决方案 »

  1.   

    #region 杀死和要恢复的数据库有关的进程
       SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass() ; 
       svr.Connect(server,user_id,pwd);
       SQLDMO.QueryResults qr = svr.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() == database.ToUpper()) 
      svr.KillProcess(lPID) ; 
       }
       svr.DisConnect();
    #endregion
      

  2.   

    你把数据库连接的进程杀掉之后是不能再正常运行程序了,原因是什么不太清楚,不过我是通过重新启动程序来解决这个问题的,代码如下:
    //重启应用程序
    string strAppFileName=Process.GetCurrentProcess().MainModule.FileName;
    Process myNewProcess=new Process();
    myNewProcess.StartInfo.FileName=strAppFileName;
    myNewProcess.StartInfo.WorkingDirectory=Application.ExecutablePath;
    myNewProcess.Start(); Application.Exit();
      

  3.   

    可我在ASP.NET下用这个重启应用程序的代码不行啊,引入system的