首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

ExecuteNonQuery()第二回执行时报错

2012-08-08 
ExecuteNonQuery()第二次执行时报错我用ExecuteNonQuery()执行insert语句,第一次执行可以执行成功,但是第

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要求已打开且可用的连接。连接的当前状态为已关闭。” 
执行语句之前先检查一下连接状态

热点排行