我想使用select查询从数据库amsdb.mbd中检索用户密码,表名为“user”
这是连接字符串
conaccess.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Documents and Settings\shirish\Desktop\AMS\New Folder\ams\ams\amsdb.mdb"
conaccess.Open()
这是我使用的查询:
Dim selcmd As New OleDbCommand("SELECT pwd FROM user WHERE uid = '" & ComboBox1.SelectedText & "'", conaccess)
Dim pwd1 As String
pwd1 = selcmd.ExecuteNonQuery()
但这给了我一个错误
FROM子句中的语法错误。
任何更正或建议?
答案 0 :(得分:1)
问题是因为user
是一个关键字,这意味着您不能使用具有该名称的表,或者无法使用此单词运行查询。
有关所有Sql Server关键字的信息,请参阅:Reserved Keywords (Transact-SQL)
如果您更改表名,则可以再次运行查询。
<强>更新强>
您需要获取密码,但ExecuteNonQuery方法无法执行此操作。为此,您需要使用OledbDataReader
例:
Dim selcmd As New OleDbCommand("SELECT pwd FROM userstbl WHERE uid = '" & ComboBox1.SelectedText & "'", conaccess)
Dim reader As OleDbDataReader = selcmd.ExecuteReader()
pwd1 = reader("pwd").ToString();