【问题标题】:Calling selection from Combo box on form to be used in SQL query从表单上的组合框中调用选择以用于 SQL 查询
【发布时间】:2016-08-31 23:00:45
【问题描述】:

我已经能够弄清楚如何使用从 SQL 查询中提取的信息填充我的组合框。我现在需要做的是从该组合框中选择项目并使用按钮使用该信息运行另一个查询。这是我目前所拥有的。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim myconn As New SqlClient.SqlConnection("server=myserver;UID=User;PWD=Password;database=myDB")
    Dim myTable As New DataTable()
    Dim myCmd As New SqlCommand()
    Dim myAdapter As New SqlDataAdapter(myCmd)

    myCmd.Connection = myconn
    myCmd.Connection.Open()

    myCmd.CommandText = "UPDATE myDB.<*Selected list from combo box*> SET example = x WHERE example = y"

    myCmd.ExecuteNonQuery()
    myCmd.Connection.Close()
    MsgBox("Done!")

End Sub

如您所见,问题是我命名的部分从组合框中选择列表>如果可能的话,正确的方向。

【问题讨论】:

  • "myDB." 令人困惑。这使得您的组合框看起来好像填充了 myDB 数据库中的表名,但您没有具体说明。您是否尝试更新用户从组合框中的表名列表中选择的表?
  • 是的,我是。他们将为下拉列表选择表格,然后单击按钮以“更新”表格中的列。
  • 例如,他们将根据当时数据库中的内容填充几个项目。他们将选择他们需要更新的那个,然后他们将单击在该选择上运行“UPDATE myDB. SET example = x WHERE example = y”的按钮。

标签: sql-server vb.net combobox


【解决方案1】:

如果我理解你的问题,我相信你需要做的就是为你的更新语句构建一个字符串来连接表名。这样的东西会起作用:

myCmd.CommandText = "UPDATE myDB." & listbox1.SelectedItem.Value & " SET example = x WHERE example = y"

您要记住的重要一点是,列表框中的错误值可能会导致您遇到名为SQL Injection 的安全漏洞。因此,在您的按钮过程中,您可能需要进行一些验证检查,以绝对确保 listbox1.SelectedItem.Value 中的值是严格的有效表名,您允许在将其作为 SQL 命令传递之前对其进行更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 2011-02-20
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多