资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

请问:谁能够给解释一下下列代码,杀死进程的,我执行的时候告诉我只能杀死用户进程

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

请问:谁能够给解释一下下列代码,杀死进程的,我执行的时候告诉我只能杀死用户进程  
   
   
   
  当不使用要恢复的数据库时以上方法可行,但当你使用了数据库时就必须杀死该进程  
  代码如下:  
   
  ///   <summary>  
  ///   还原数据库函数  
  ///   </summary>  
  ///   <param   name="strDbName">数据库名</param>  
  ///   <param   name="strFileName">数据库备份文件的完整路径名</param>  
  ///   <returns></returns>  
  public   bool   RestoreDB(string   strDbName,string   strFileName)    
  {    
  //PBar   =   pgbMain   ;    
  SQLDMO.SQLServer   svr   =   new   SQLDMO.SQLServerClass()   ;    
  try    
  {    
  //服务器名,数据库用户名,数据库用户名密码  
  svr.Connect("localhost","sa","hai")   ;  
   
  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   ;    
  }    
                                  //杀死使用strDbName数据库的进程  
  for(int   i=1;i<=qr.Rows;i++)    
  {    
  int   lPID   =   qr.GetColumnLong(i,iColPIDNum)   ;    
  string   strDBName   =   qr.GetColumnString(i,iColDbName)   ;    
  if   (strDBName.ToUpper()   ==   strDbName.ToUpper())    
  {  
  svr.KillProcess(lPID)   ;    
  }  
  }    
                                   
  SQLDMO.Restore   res   =   new   SQLDMO.RestoreClass()   ;    
  res.Action   =   0   ;    
  res.Files   =   strFileName   ;    
   
  res.Database   =   strDbName   ;    
  res.ReplaceDatabase   =   true   ;    
  res.SQLRestore(svr)   ;    
  return   true   ;    
  }    
  catch  
  {    
  return   false;  
  }    
  finally    
  {    
  svr.DisConnect()   ;    
  }    
  }

网友回答:

发表者:yzx110

执行的时候告诉我只能杀死用户进程,  
   
  你是没有权限杀死系统进程的,只能杀用户进程。  
   
  你杀进程的可以判断一下。

发表者:incisive

up


 

 
热门推荐笔记本: 夏新笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved