【问题标题】:No value given for one or more required parameters in select query选择查询中的一个或多个必需参数没有给出值
【发布时间】:2021-10-02 13:11:25
【问题描述】:

选择查询有问题。如何在 (where) 之后添加正确的内容?

Private Sub sal_b1_Click(sender As Object, e As EventArgs) Handles sal_b1.Click
    If ComboBox3.Text <> "" Then
        Try
            Me.Refresh()
            con.Open()
            ds = New DataSet
            tables = ds.Tables
            da = New OleDbDataAdapter("Select inv_sall2.outdate, inv_sall2.custName, inv_sall2.ac, inv_sall2.subtotal, inv_sall2.taf, inv_sall.itemName, inv_sall.quntity, inv_sall.itemPrice, inv_sall.Tottal From inv_sall INNER Join inv_sall2 On inv_sall.no = inv_sall2.invoceno WHERE (((inv_sall2.invoceno)= '" & ComboBox3.Text & "'));", con)
            da.Fill(Form2.hazemDataSet, "datatable1")
            Form2.Show()
            con.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    Else
        MsgBox("please select the invoice number")
    End If
End Sub

【问题讨论】:

  • 除了关闭连接外,还应该处理连接。
  • 为什么要创建一个新的 DataSet 和一个变量来保存该新 DataSet 的 Tables 集合并且从不使用它们中的任何一个?
  • 如果您使用的是 DataAdapter,它将为您打开和关闭连接。我无论如何都不会在需要之前打开连接几行。

标签: sql vb.net


【解决方案1】:

只要改成这样:

WHERE inv_sall2.invoceno = " & ComboBox3.Text & ";", con)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    相关资源
    最近更新 更多