怎样彻底的关闭和打开数据库?close好像关闭不了啊!!有没有其他的关闭代码???

lyzo144 2005-04-12 03:48:42
还原数据库时发现,在进入这个界面时调用数据库验证用户后,然后还原就说正在使用,不能还原,就算close了也还是不行,高手指导一下吧,还有没有其他方法啊!!!!!!
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect("localhost", "sa", "");
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database = "a";
oRestore.Files =@"c:\windows\"+"11.bck"; oRestore.FileNumber = 1;
oRestore.ReplaceDatabase = true;
oRestore.SQLRestore(oSQLServer);
MessageBox.Show("成功");

这个方法在没调用数据库时就可以,先调用数据库就不行了,close也关不到
...全文
269 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyzo144 2005-04-12
  • 打赏
  • 举报
回复
谢谢unique327(飞扬)和 ChineseeBoy(RMB)
你们和我的思路差不多
谢谢ChineseeBoy(RMB)给出代码
ChineseeBoy 2005-04-12
  • 打赏
  • 举报
回复
SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass() ;
try
{
//服务器名,数据库用户名,数据库用户名密码
svr.Connect("localhost","sa","") ;

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() == "fingerPrint".ToUpper())
{
svr.KillProcess(lPID) ;
}
}
unique327 2005-04-12
  • 打赏
  • 举报
回复
用SQLSERVER.enumprocess得到连接到数据库的所有进程,然后用killprocess方法把这些进程全关闭就行!
lyzo144 2005-04-12
  • 打赏
  • 举报
回复
不过我看了很多帖子都说close没有真正的断开,他们还在连接池里,杀死进程是可行的
lyzo144 2005-04-12
  • 打赏
  • 举报
回复
谢谢 lilionline(一滴水的海)
问题我解决了,是用杀死所有用户进程解决的
http://community.csdn.net/Expert/topic/3167/3167207.xml?temp=.6428949
lilionline 2005-04-12
  • 打赏
  • 举报
回复
晕,这不是SqlConnection的数据库关闭没有作用,这和ADO.NET没有关系,我可以给你我的原代码,给我发邮件吧 net_lili@163.com
lyzo144 2005-04-12
  • 打赏
  • 举报
回复
自己up一下,close()没有真正的关闭数据库连接啊!!
http://community.csdn.net/Expert/topic/3480/3480409.xml?temp=.8576624
有没有其他方法呢?
ChineseeBoy 2005-04-12
  • 打赏
  • 举报
回复
靠!!!
小case!!!!!
lyzo144 2005-04-12
  • 打赏
  • 举报
回复
ft63(ft)
GC.Collect();是什么???
lyzo144 2005-04-12
  • 打赏
  • 举报
回复
数据库的关闭
conn.Close();
conn.Dispose();
都试了,好像还是不行
conn.state显示的还是open
lyzo144 2005-04-12
  • 打赏
  • 举报
回复
这段代码是还原的代码,没有问题,在这之前应该关闭数据库,现在主要问题是数据库关不了
_谁啊 2005-04-12
  • 打赏
  • 举报
回复
把数据库连接conn
conn.Close();
conn.Dispose();
GC.Collect();
之后试试,看看行吗
lampson123 2005-04-12
  • 打赏
  • 举报
回复
怎么看的不是很懂????

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧