【发布时间】:2014-01-05 22:18:01
【问题描述】:
我正在 ASP.net 中编写一个简单的页面来更新 Access 表中的密码。以下是有效的 SELECT 查询的语法:
Dim dbConn As OleDbConnection
Dim dbCommand As OleDbCommand
Dim dbReader As OleDbDataReader
'Connect to db
dbConn = New OleDbConnection(Application("strConnectionString"))
dbConn.Open()
'Get user info
strSQL = "SELECT * FROM users WHERE Username = '" & strUsername & "';"
dbCommand = New OleDbCommand(strSQL, dbConn)
dbReader = dbCommand.ExecuteReader()
还有我的连接字符串:
Application("strConnectionString") = _
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strDBPath & _
"; Jet OLEDB:Database Password=" & strDBPassword & ";"
SELECT 工作正常,所以我知道我的连接正常。但是这个查询给了我一个语法错误:
strSQL = "UPDATE users SET Password = '1'"
在其他一切都相同的情况下,ASP 错误表明我的语法有错误。但是当我 response.write strSQL 行时,它给了我这个:
UPDATE users SET Password = '1'
当我将其粘贴到 Access 中的查询编辑器中时,查询会将表中的所有“密码”字段更新为“1”,所以我知道语法是可以的。我在没有数据读取器并使用 dbCommand.ExecuteNonQuery() 的情况下进行了尝试,结果相同。
我已经获得了 Access 文件集的权限,因此每个人都可以完全控制,所以我认为这不是权限问题。
谁能看到我的错误?我真的被困住了。谢谢。
【问题讨论】:
-
您的源代码看起来不太正确......引号字符串中的分号,没有分号终止语句(错位?)。对于 SQL,分号仅用于脚本、存储过程和 SQL 命令行实用程序中的语句终止,绝不会在您在构建更新语句时使用它的上下文中。
-
@rObjects,很高兴知道。这不是问题,但我会更新我的编码标准。
标签: asp.net ms-access syntax sql-update