【发布时间】:2015-09-23 18:14:09
【问题描述】:
在 VB 中工作,我正在连接到一个访问数据库,并且需要从表中获取一个值。
user = Environment.UserName
command.CommandText = "SELECT 'nid', 'UserName' FROM qryUSERJOBS WHERE UserName = " & user
command.Connection = connect
Using reader As OleDbDataReader = command.ExecuteReader()
While reader.Read()
record = reader("nid").ToString
End While
End Using
当我的代码进入Using 语句时,会创建阅读器,并且我的win 表单会立即显示,而无需读取数据库或点击包含它的例程的End Sub。有什么想法吗?
【问题讨论】:
-
将您的代码包装在 Try...catch 块中,并在其中设置断点。我认为您的用户变量周围缺少单引号。
-
你还没有打开你的连接,是吗?始终使用参数化查询而不是字符串连接来防止 sql 注入和其他问题。
-
不要运行
OnLoad中的代码(或调用方法),将其移动到(或调用)OnShown中的方法。 -
连接是在代码的前面部分打开的。我把它放在 try...catch 中,实际上收到了一个更改错误。杰里米,你是对的,我缺少用户变量周围的单引号。谢谢大家的回复
-
使用Parameters可以避免不匹配的报价
标签: sql vb.net ms-access datareader oledbdatareader