我已经能够弄清楚如何使用从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
正如您所看到的,问题是我命名的部分&lt; 从组合框中选择列表&gt;我不是要求如何做到这一点的答案,我要求你们尽可能指出我正确的方向。
答案 0 :(得分:0)
Dim selectedIndex As Integer=comboBox1.SelectedIndex
Dim selectedItem As Object
selectedItem = comboBox1.SelectedItem
MessageBox.Show("Selected Item Text: " & selectedItem.ToString() & Microsoft.VisualBasic.Constants.vbCrLf & _
"Index: " & selectedIndex.ToString())
答案 1 :(得分:0)
如果我理解你的问题,我相信你需要做的就是为你的update语句构建一个字符串来连接表名。像这样的东西可以起作用:
myCmd.CommandText = "UPDATE myDB." & listbox1.SelectedItem.Value & " SET example = x WHERE example = y"
您要记住的一件重要事情是,列表框中的错误值可能会导致您出现名为SQL Injection的安全漏洞。因此,在您的按钮过程中,您可能需要进行一些验证检查,以确保listbox1.SelectedItem.Value
中的值严格地是一个有效的表名,您可以在将其作为SQL命令传递之前进行更新。