我的代码如下,请问出了什么问题,为会么调试的时候老是显示:
ExecuteNonQuery 需要打开的并且可用的连接。该连接的当前状态是 Closed
不是已经有一个mycommand.Connection.Open()语句了吗?
Dim str As String
Dim ip As String
Dim sex As String
str = "Update guestbook SET 版主回复 ='" & TxtReply.Text & "',回复时间 ='" & System.DateTime.Now & "'"
Dim conn As OleDbConnection
conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("images/mdb.mdb")) Dim mycommand As New OleDbCommand mycommand.CommandText = str
mycommand.Connection = conn mycommand.Connection.Open()
mycommand.ExecuteNonQuery()
mycommand.Connection.Close()
mycommand.Connection.Dispose()
If mycommand.ExecuteNonQuery = 1 Then
Response.Write("数据库插入成功")
End If
解决方案 »
- IIRF重写指向路径出现400错误,高手帮忙看一下??
- 按条件自动搜索匹配
- GridView不用AutoGenerateColumns=false,如何隐藏一列
- 编译ComponentArt源代码后出现Js脚本错误
- 请问,怎么在ASP.NET上实现三层结构呀.
- asp.net 1.x 页面的提交
- 在asp.net中使用水晶报表做甘特图~结果.net2003自带的水晶报表是9.1不支持甘特图~怎么办啊?
- 个人空间的应用问题
- 当有比较多的文件需上传时,用什么方式比较好?
- 小弟在项目编写过程中的疑惑,望高手帮忙,谢谢
- 并不是所有的客户端都允许javascript怎么办?
- 有个项目比较紧迫,需要增加一个熟悉asp.net、Oracle和Windows Server 2003ADSI的人,有意者请和我联系。
mycommand.Connection.Close()
mycommand.Connection.Dispose()
If mycommand.ExecuteNonQuery = 1 Then
Response.Write("数据库插入成功")
End If
错了,应该改为
Dim result As Int32
result = mycommand.ExecuteNonQuery()
mycommand.Connection.Close()
mycommand.Connection.Dispose()
If result = 1 Then
Response.Write("数据库插入成功")
End If
但我进数据库查了一下,数据并没有插入呀?????
这又是怎么回事?????
查一下是否update成功.
Response.Write("数据库插入成功")
End If这句执行的时候其实又重新Execute了一次,但是这时connection已经被之前的代码close了,du9232帮忙解决的方法就是不要写两次ExecuteNonQuery。
{
myConnection.Open ();
}
用这句判断是否打开了数据库链接,然后再看看你写的SQL插入语句与更新语句是否执行了
可以在调试状态跟踪mycommand.CommandText内容
...
conn.Open()
cmd.Connection = conn
cmd.CommandText = str
...