Vb.net Visual Basic-没有为一个或多个必需参数提供值

Vb.net Visual Basic-没有为一个或多个必需参数提供值,vb.net,visual-studio,datagridview,Vb.net,Visual Studio,Datagridview,我有一个DataGridView,它显示表的内容(带有sql查询)。但每当我运行代码时,它都会显示以下错误: 没有为一个或多个必需参数提供值 哪里出了问题?程序运行时没有显示任何错误 以下是在DataGridView中显示的代码: Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\BSPDatabase.accdb" MyConn =

我有一个
DataGridView
,它显示表的内容(带有sql查询)。但每当我运行代码时,它都会显示以下错误:

没有为一个或多个必需参数提供值

哪里出了问题?程序运行时没有显示任何错误

以下是在
DataGridView
中显示的代码:

        Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\BSPDatabase.accdb"
        MyConn = New OleDbConnection
        MyConn.ConnectionString = connString
        ds = New DataSet
        tables = ds.Tables
        da = New OleDbDataAdapter("Select * from [Transactions] where transMonth=" & monthCombobox.Text & "", MyConn)
        da.Fill(ds, "BSPDatabase") 'Change items to your database name
        Dim view As New DataView(tables(0))
        source1.DataSource = view
        TransactionsDataGridView.DataSource = view

我认为您正在形成糟糕的SQL。该值需要用引号括起来

   da = New OleDbDataAdapter(String.Format("Select * from [Transactions] where transMonth ='{0}'", monthCombobox.text), MyConn)

您是否在错误恢复下一步的
语句上方的代码中有某个地方?@emptionalebola不,我没有。transMonth是什么数据类型?monthCombobox.Text中有什么?也许您需要类似于
String.Format(“Select*from[transMonth]where transMonth='{0}',monthCombobox.text)
@Fruitbat transMonth是短文本,monthCombobox是一个组合框实际上,OP应该使用参数化查询,而不是连接字符串来创建语句。当前的问题只是串联所引起的问题之一。SQL注入攻击、由于字符串格式差异而丢失十进制或日期值、性能差和可维护性差只是其中的一些问题