我有一个ms访问的数据库,表名为regn
。我想使用命令文本和执行代码填充字段名称nocount
。这是我的代码:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
dim i as integer
If cn.State = ConnectionState.Open Then
cn.Close()
End If
cn.Open()
cmd.CommandText = "select nocount from regn where pname='" & PNAMETextBox.Text & "' And fname='" & FNAMETextBox.Text & "' And dob='" & DOBDateTimePicker.Text & "' "
i = cmd.ExecuteScalar
cn.Close()
答案 0 :(得分:0)
如果您显示变量i
,那么您可以看到来自nocount
的第一个值,其中您已满足条件。
答案 1 :(得分:0)
这假设您的连接设置在其他位置,看起来就像上面的代码片段一样。如果您只是想获得“nocount”,则需要将命令设置为连接。这是一个参数化的示例(它将保护您的SQL注入攻击):
' Assuming you're initializing the connection elsewhere, this will create the command AND set it's
' connection to your connection
Using cmd As SqlCommand = cn.CreateCommand
' Parameterize the SQL so it is protected from SQL injection exploits
cmd.CommandText = "select nocount from regn where pname=@pname And fname=@fname And dob=@dob"
cmd.Parameters.AddWithValue("@pname", PNAMETextBox.Text)
cmd.Parameters.AddWithValue("@fname", FNAMETextBox.Text)
cmd.Parameters.AddWithValue("@dob", DOBDateTimePicker.Text)
' Execute the SQL retuning the first column of the first row (e.g. the nocount from the query)
i = cmd.ExecuteScalar
End Using
正如@Tim Schmelter指出的那样,这个命令包含一个Using,当它被使用时将正确处理它(再次,我忽略了我的例子中的连接,假设它已经设置并在其他地方正确处理)。