vb asp插入数据库 关闭连接出错,帮忙看一下,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/31 15:02:39
程序如下:(请教该怎么改?)
<% @language="VBScript" @codepage="65001"%>
<%
Option Explicit
Response.contentType="text/html;charset=utf-8"
dim conn,connstr,rs,sql
connstr="provider=Microsoft.Jet.OLEDB.4.0;data source="&Server.MapPath("mydb.mdb")&";"
set conn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.RecordSet")
conn.open connstr
sql="INSERT INTO [QandA] ([stcontact],[stnum]) VALUES ('2','3')"
rs.open sql,conn,3,3
response.write("插入完毕")
rs.close
Set rs=Nothing
conn.close
Set conn=Nothing
%>
结果显示:
ADODB.Recordset (0x800A0E78)
对象关闭时,不允许操作。
错误在rs.close这句.

补充:1.要是最后不写那四句关闭释放的语句就不会出错.
2.即使出错情况下数据库的写入也是成功的.
楼下那位的方法可以,但是我想知道为什么我的错了?你的那个conn.execute sql在功能上有什么不一样的地方?麻烦你了

RS.OPEN 意思是:执行一个SQL语句,并把结果给到RS这个数据集里。
你的语句是一条INSERT语句,只有SELECT语句才会产生查询结果,所以实际上你的RS并没有得到结果。也就是说RS还保持着刚刚被CREATE后的状态。
这个时候去执行CLOSE操作,显然是错误的。

CONN.EXECUTE 的功能和RS.OPEN大同小异,都可以执行SQL命令,也都可以返回数据集。用哪个看个人喜好了。

CONN.EXECUTE在返回数据集的时候需要使用SET 关键字,如:SET RS = CONN.EXECUTE(SQL)。

<% @language="VBScript" @codepage="65001"%>
<%
Option Explicit
Response.contentType="text/html;charset=utf-8"
dim conn,connstr,sql
connstr="provider=Microsoft.Jet.OLEDB.4.0;data source="&Server.MapPath("mydb.mdb")&";"
set conn=Server.CreateObject("ADODB.Connection")
conn.open connstr
sql="INSERT INTO [QandA] ([stcontact],[stnum]) VALUES ('2','3')"
conn.execute sql
response.write("插入完毕")
conn.close
Set conn=Nothing
%>