请教一个VBS数据库的问题,100分~~,急切~~~~~~~~~~~~~~~~~~~~~~

microgiant 2010-09-17 11:53:52
各位,小弟第一次接触VBS,想请教一个问题

我在update一张表的时候,总是出现错误:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。

语句是这样的:
conn.execute("update wfrec set zt=1,yx="&request.form("chk")&",cphm="&request.form("cphm")&" where id="&id)
其中,如果cphm的值是纯粹数字型字符如:1231231,这条语句是可以正常执行的

但是如果cphm的值不是纯粹的数字型字符的话,比如ab776655,或者测试12345,就出现以上的错误

数据库是access,cphm的字段类型是文本,长度是255

请教如何解决,谢谢了
...全文
51 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
来自故乡的风 2010-09-18
  • 打赏
  • 举报
回复
cphm字段的类型是不是字符型?加上单引号试试:
conn.execute("update wfrec set zt=1,yx="&request.form("chk")&",cphm='"&request.form("cphm")&"' where id="&id)

hookee 2010-09-18
  • 打赏
  • 举报
回复

chk = request.form("chk")
cphm = request.form("cphm")
cphm = Replace(cphm,"'", "''")
conn.execute("update wfrec set zt=1,yx=" & chk & ",cphm='" & cphm & "' where id=" & id)

最好用ADO操作防止SQL注入

Set rs = CreateObject("ADODB.RecordSet")
rs.CursorLocation = 3
rs.Open "SELECT * FROM wfrec WHERE id=" & id, conn, 1, 3
If Not(rs.EOF And rs.BOF) Then
rs("zt").value = 1
rs("chk").value = request.form("chk")
rs("").value = request.form("cphm")
rs.Update
rs.Close
End If
Set rs = Nothing
conn.Close
Set conn = Nothing

4,008

社区成员

发帖
与我相关
我的任务
社区描述
它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。
社区管理员
  • vbScript社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧