读书人

ExecuteNonQuery()第二回执行时报错

发布时间: 2012-08-08 14:32:45 作者: rapoo

ExecuteNonQuery()第二次执行时报错
我用ExecuteNonQuery()执行insert语句,第一次执行可以执行成功,但是第二次执行就会出现“ExecuteNonQuery要求已打开且可用的连接。连接的当前状态为已关闭。”
下面是我的代码(在一个窗体的按钮click事件中写的):
'拼接SQL语句
strSQL = "insert into tBookTypes(typeNo, typeName, jcts, rfkje) values('" & strSlbh & "', '"
strSQL &= strSlmc & "', " & intJcts & ", " & decRfkje & ")"
'MsgBox(strSQL, MsgBoxStyle.Information, "提示信息")

'创建sqlCommand实例
cmdSQL = New SqlCommand(strSQL, conn)
Try
'连接数据库
conndb.connOpen()
'执行SQL语句
intCnt = cmdSQL.ExecuteNonQuery()
If intCnt = 1 Then
MsgBox("添加图书类别成功!", MsgBoxStyle.Information, "提示信息")
clearTextBox()
End If
Catch ex As SqlException
MsgBox(ex.ToString())
Catch ex As Exception
MsgBox(ex.ToString())
Finally
cmdSQL.Dispose()
conndb.connClose()
End Try
其中,conndb是我写的一个公用模块,放数据库的连接、关闭方法。
第一次执行的时候都没有问题,数据也成功写入数据库了,应该不是sql语句拼接或者数据库连接的问题。但是第二次执行就会出错,不知道是什么原因,请大家帮帮忙,在线等,谢谢!!!

[解决办法]
cmdSQL = New SqlCommand(strSQL, conn) //这里的连接和下面conndb里的连接是否为同一个连接

Try
'连接数据库
conndb.connOpen()
如果为同一个,考虑一下你的connOpen() 是否成功

[解决办法]
[Quote=引用:]
cmdSQL = New SqlCommand(strSQL, conn) //这里的连接和下面conndb里的连接是否为同一个连接

Try
'连接数据库
conndb.connOpen()
如果为同一个,考虑一下你的connOpen() 是否成功
[/Quot]

执行语句之前先检查一下连接状态
[解决办法]
"我用ExecuteNonQuery()执行insert语句,第一次执行可以执行成功,但是第二次执行就会出现“ExecuteNonQuery要求已打开且可用的连接。连接的当前状态为已关闭。”
执行语句之前先检查一下连接状态

读书人网 >VB Dotnet

热点推荐