以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数据库总是删除不了,提示数据库被占用!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=78421)

--  作者:hdffzxf
--  发布时间:2015/12/9 0:05:00
--  数据库总是删除不了,提示数据库被占用!
\'\'\'
Dim 数据库名 As String=args(0)
Try
    Connections(全局变量系统数据源).BeginTransaction() \'开始事务
    Dim cmd As new SQLCommand
    cmd.ConnectionName=全局变量系统数据源
    cmd.CommandText = "DR OP DATA BASE " & 数据库名
    cmd.ExecuteNonQuery
    Connections(全局变量系统数据源).Commit \'提交事务,所有操作生效
Catch ex As Exception \'如果出错
    Connections(全局变量系统数据源).Rollback() \'回滚事务,撤销所有操作
End Try
Dim cmd1 As new SQLCommand
cmd1.connectionname=全局变量系统数据源
cmd1.CommandText ="Se lect Name FROM Master..SysDatabases ORDER BY Name"
Dim dt As DataTable =cmd1.ExecuteReader()
If dt.Find("Name= \'" & 数据库名 & "\'") Is Nothing Then
    Return True
Else
    Return False
End If

--  作者:hdffzxf
--  发布时间:2015/12/9 0:06:00
--  
因为总是报错数据库被占用,所以用了try,可是数据库没有被占用呀,为何总是提示被占用呢?
--  作者:Hyphen
--  发布时间:2015/12/9 8:44:00
--  
先中断连接,试试
cmd.CommandText = "ALT ER DATABASE " & 数据库名 & " SET SINGLE_USER WITH ROLLBACK IMMEDIATE;DR OP DATA BASE " & 数据库名




--  作者:hdffzxf
--  发布时间:2015/12/9 12:05:00
--  
谢谢!果然见效,对数据库的一些维护操作有待继续学习加强!万分感谢!