【问题标题】:Searching for user and returning the user information搜索用户并返回用户信息
【发布时间】:2020-10-25 23:34:20
【问题描述】:

当搜索一个用户的全名并被找到时。我想从所有表格列中检索其余用户信息并将它们显示在文本框中。例如 textbox1=ID、textbox2=userInitials、textbox3=userEmail

当我运行下面的代码时,我收到消息框“找到用户”,但我不知道这是否真的有效,因为我没有返回任何值。我该怎么做?非常感谢。

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim searchQuery As String = "Select * from userInfoTable where [userFullName]= '" & SearchName.Text & "'"
    ExecuteQuery(searchQuery)
    MessageBox.Show("User Found.")
End Sub

Public Sub ExecuteQuery(query As String)
    Dim command As New SqlCommand(query, connection)

    connection.Open()
    command.ExecuteNonQuery()
    connection.Close()
End Sub

【问题讨论】:

  • 嗯 - ExecuteNonQuery 适用于不返回任何数据的 SQL 命令 - 例如 INSERTUPDATEDELETE。如果要获取数据,则需要使用ExecuteReader 并遍历读取器返回的行,或者用它填充数据表
  • 需要学习如何参数化您的查询!这对注入很开放,因此是一个巨大的安全漏洞。
  • 嗨@Larnu 我对编码世界很陌生,请问您对查询进行参数化是什么意思,您能给我指出一个好的学习资源吗?谢谢。

标签: sql-server visual-studio winforms return-value


【解决方案1】:

您正在使用ExecuteNonQuery(),但这是在您想要执行不返回结果集的操作时使用的。在您的情况下,您确实想要结果集。因此,您想使用ExecuteReader(),而不是那样,然后从返回的“阅读器”中读取。 Like this.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 2013-02-26
    相关资源
    最近更新 更多