我尝试在访问数据库中插入datagridview的所有数据,但它显示错误“找不到名为Challan No的列。参数名称:columnName'

I'm try to insert all data of datagridview in access DB, But it showing an error 'Column named Challan No cannot be found. Parameter name: columnName'

提问人:PANDA 提问时间:10/1/2023 最后编辑:marc_sPANDA 更新时间:10/1/2023 访问量:27

问:

Private Sub Button_IWP_Save_Click_1(sender As Object, e As EventArgs) Handles Button_IWP_Save.Click
    DataGridView1.RowHeadersVisible = False
    For Each row As DataGridViewRow In DataGridView1.Rows

        Using conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\SUKHVIR PC\Documents\InwardDB.accdb")

            Using cmd As New OleDbCommand("insert into inwarddb values( @challan No,@date,@Company,@Item Name,@qty,@Unit)", conn)


                cmd.Parameters.AddWithValue("@challan No", row.Cells("Challan No").Value)
                cmd.Parameters.AddWithValue("@date", row.Cells("Date").Value)
                cmd.Parameters.AddWithValue("@Comapny", row.Cells("Company").Value)
                cmd.Parameters.AddWithValue("@Item Name", row.Cells("Item Name").Value)
                cmd.Parameters.AddWithValue("@Qty", row.Cells("QTY").Value)
                cmd.Parameters.AddWithValue("@Unit", row.Cells("Unit").Value)
                conn.Open()
                cmd.ExecuteNonQuery()
                conn.Close()
            End Using
        End Using

    Next

    MsgBox("Save Successful", vbOK)
End Sub

enter image description here

我正在尝试在访问数据库中插入datagridview的所有数据,但它显示错误

找不到名为 Challan No 的列。参数名称:columnName

vb.net ms-access

评论

0赞 Gustav 10/1/2023
研究你的桌子。“Challan No”要么拼写错误(如“公司”),要么不存在。
0赞 jmcilhinney 10/1/2023
如果你在VB中编写一个方法,你是否期望在参数名称中加入空格是可以的?我希望不会。在这种情况下,为什么你认为SQL允许在参数名称中使用空格?
0赞 jmcilhinney 10/1/2023
虽然在插入到所有列时允许在 INSERT 语句中省略列列表,但这样做被认为是不好的做法,因为更容易出错。您应该指定要插入到的列。
0赞 jmcilhinney 10/1/2023
您可能假定网格列的标题文本是标识符。事实并非如此。它们可能包含相同的文本,但它们不是相同的值。如果尚未为每列指定名称,则无法按名称检索它们。为列命名或按索引检索它们。
0赞 jmcilhinney 10/1/2023
为什么要首先从网格中检索数据?将 DataTable 绑定到网格,然后使用数据适配器将其保存到数据库,只需调用一次 Update。

答: 暂无答案