VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 740|回复: 5

vb.net恢复sql server数据库问题

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-7 01:10:01 | 显示全部楼层 |阅读模式
我要从指定文件恢复数据库,先关闭用户进程,但是运行到“Kill @spid”就报错“为处理的System.Data.SqlClient.SqlException 类型的异常出现在 system.data.dll 中。其他信息:系统错误”。我用MSGBOX判断程序已取到data_reader.Item(0)的值为53,直接在查询分析器里运行“Kill 53”也完全正常。请高手帮忙指点~~

具体程序如下:

Dim connect_string As String = "Data Source = SUN; Initial catalog = Master; user id=sa; persist security info = True"
Dim sql_command As New SqlCommand()
Dim data_reader As SqlDataReader
sql_connection = New SqlConnection(connect_string)
        
'关闭用户进程,使数据库成功恢复
sql_command.CommandText = "Select spid From Master..sysprocesses where dbid=db_id('DBName')"
sql_command.Connection = sql_connection
sql_connection.Open()

data_reader = sql_command.ExecuteReader

If data_reader.Read() Then
    sql_command.CommandText = "Kill @spid"
    sql_command.Parameters.Add("@spid", data_reader.Item(0))

    data_reader.Close()
    sql_command.ExecuteNonQuery()           ‘到这里报错
End If

'恢复数据库
sql_command.CommandText = "Restore database [DBName] From disk='C:\a.bak' With Replace"
sql_command.ExecuteNonQuery()
回复

使用道具 举报

0

主题

8

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-11 13:27:01 | 显示全部楼层
ExecuteReader平时用的比较少。
但是感觉data_reader.Close()已经关闭了,那么你还怎么执行。
回复

使用道具 举报

1

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-11 14:45:02 | 显示全部楼层
data_reader.Close()
放到外面來
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-18 10:00:02 | 显示全部楼层
对.
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-3-13 19:45:01 | 显示全部楼层
我试了各位说的,还是不行的,会报错说“为处理的“System.InvalidOperationException”类型的异常”出现在system.data.dll中,其他信息:已有打开的与此连接相关联的DataReader,必须首先将它关闭。”

所以还是要将data_reader.Close()放在里面。

请高手帮忙指点~~
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-17 16:30:02 | 显示全部楼层
看看这里,

http://community.csdn.net/Expert/topic/4751/4751771.xml?temp=.3614618
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表