这个 OleDbReader 有什么问题?
What is wrong with this OleDbReader?
在 VB 工作,我正在连接到一个访问数据库,并且需要从 table.
中获取一个值
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
语句时,会创建 reader,并且我的 win 表单会立即显示,而无需读取数据库或点击包含的例程的 End Sub
它。有什么想法吗?
将代码放入 Try...Catch 块后,我收到有关我的参数的错误。我的 user
变量需要单引号。
代码修复:
user = Environment.UserName
command.CommandText = "SELECT nid, UserName FROM qryUSERJOBS WHERE UserName = '" & user & "'"
command.Connection = connect
connect.Open()
Try
Using reader As OleDbDataReader = command.ExecuteReader()
While reader.Read()
record = reader("nid").ToString
End While
End Using
Catch ex As Exception
End Try
感谢大家的帮助和建议!
- 使用参数化查询
- 避免sql注入
- 避免像这样的引用错误
- 利用一次性物品
Using connect As New OleDbConnection(connectionString)
connect.Open()
Using command As New SqlCommand(
"SELECT nid, UserName FROM qryUSERJOBS WHERE UserName = @user",
connect)
user = Environment.UserName
command.Parameters.Add(New OleDbParameter("@user", user))
Using reader As OleDbDataReader = command.ExecuteReader()
While reader.Read()
record = reader("nid").ToString
End While
End Using
End Using
End Using
在 VB 工作,我正在连接到一个访问数据库,并且需要从 table.
中获取一个值 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
语句时,会创建 reader,并且我的 win 表单会立即显示,而无需读取数据库或点击包含的例程的 End Sub
它。有什么想法吗?
将代码放入 Try...Catch 块后,我收到有关我的参数的错误。我的 user
变量需要单引号。
代码修复:
user = Environment.UserName
command.CommandText = "SELECT nid, UserName FROM qryUSERJOBS WHERE UserName = '" & user & "'"
command.Connection = connect
connect.Open()
Try
Using reader As OleDbDataReader = command.ExecuteReader()
While reader.Read()
record = reader("nid").ToString
End While
End Using
Catch ex As Exception
End Try
感谢大家的帮助和建议!
- 使用参数化查询
- 避免sql注入
- 避免像这样的引用错误
- 利用一次性物品
Using connect As New OleDbConnection(connectionString)
connect.Open()
Using command As New SqlCommand(
"SELECT nid, UserName FROM qryUSERJOBS WHERE UserName = @user",
connect)
user = Environment.UserName
command.Parameters.Add(New OleDbParameter("@user", user))
Using reader As OleDbDataReader = command.ExecuteReader()
While reader.Read()
record = reader("nid").ToString
End While
End Using
End Using
End Using