积极答复者
vb中使用带参数的SQl语句问题

问题
-
在VB6里的一条数据库更新语句:
update Ass_UserPass set username='" & txtName & "',department='" & cboBm.Text & "',UsFunction='" & cboLb.Text & "',pword='" & strPassStor & "' where user_id='" & lblId & "'
由于 strPassStor 是经加密运算得出,所以这种写法会有错误,因为产生的密码中会有特殊字符。
于是想用参数化查询的方式:
Set Cmd = New ADODB.Command
strSql = "update Ass_UserPass set username='" & txtName & "',department='" & cboBm.Text & "',UsFunction='" & cboLb.Text & "',pword=@Pword where user_id='" & lblId & "' "
With Cmd
.Prepared = False
.CommandText = strSql
.CommandType = adCmdText
.NamedParameters = True
.Parameters.Append .CreateParameter("@Pword", adVarChar, adParamInput, 32, strPassStor)
Set .ActiveConnection = cnErp
.Execute
End With
结果提示变量“@Pword ”未定义,试了好多次都不能解决参数化查询问题,网上也只有调用存储过程的例子。请问如何实现Sql语句中带参数的查询呢?谢谢!
陈锦巍
答案
-
你好
或者你可以幫你的 SQL STATEMENT 轉成 STORED PROCEDURE 因為好像 CommandType = adCmdText 不能接受 SQL Parameter 的 要STORED PROCEDURE才可以
或者你可以POST 這個strPassStor 給我們參考看..應用可以怎樣直接方到SQL QUERY 使用
Please correct me if my concept is wrong
Chi- 已建议为答案 Jie BaoModerator 2010年12月14日 10:53
- 已标记为答案 Jie BaoModerator 2010年12月15日 7:05
-
谢谢您的答复,现在找到解决方法了,就是查询语句的参数只能用“?”。
陈锦巍- 已标记为答案 Jie BaoModerator 2010年12月15日 7:05
全部回复
-
你好
或者你可以幫你的 SQL STATEMENT 轉成 STORED PROCEDURE 因為好像 CommandType = adCmdText 不能接受 SQL Parameter 的 要STORED PROCEDURE才可以
或者你可以POST 這個strPassStor 給我們參考看..應用可以怎樣直接方到SQL QUERY 使用
Please correct me if my concept is wrong
Chi- 已建议为答案 Jie BaoModerator 2010年12月14日 10:53
- 已标记为答案 Jie BaoModerator 2010年12月15日 7:05
-
谢谢您的答复,现在找到解决方法了,就是查询语句的参数只能用“?”。
陈锦巍- 已标记为答案 Jie BaoModerator 2010年12月15日 7:05