Dim Con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Music_Sales_Database.mdb;")
Dim Com As OleDbCommand
Dim SaleCode As Integer
Dim MusicID As String
Dim SubTotalPrice As Decimal
Dim Copies1 As Integer
Dim STR1 As String
SaleCode = 1
Com = New OleDbCommand
Com.Connection = Con
For x As Integer = 0 To SalesDataGridView.Rows.Count - 1
MusicID = SalesDataGridView.Rows(x).Cells(0).Value
SubTotalPrice = SalesDataGridView.Rows(x).Cells(5).Value
Copies1 = SalesDataGridView.Rows(x).Cells(3).Value
STR1 = "INSERT INTO Sales(Sales_ID, Sales_Date, Copies, Music_ID, Staff_ID, Total_Price) VALUES (@Sales_ID, @Sales_Date, @Copies, @Music_ID, @Staff_ID, @Total_Price)"
Dim Comm As New OleDbCommand(STR1, Con)
Comm.Parameters.AddWithValue("@Sales_ID", SaleCode)
Comm.Parameters.AddWithValue("@Sales_Date", txtDateAndTime)
Comm.Parameters.AddWithValue("@Copies", Copies1)
Comm.Parameters.AddWithValue("@Music_ID", MusicID)
Comm.Parameters.AddWithValue("@Staff_ID", txtStaff_ID)
Comm.Parameters.AddWithValue("@Total_Price", SubTotalPrice)
'Command.ExecuteNonQuery()
Comm.Dispose()
Next
Connection.Close()
你好我所有的大四学生,我不知道为什么没有任何错误显示,也无法将其保存在Access数据库中。
整个代码在按钮中,我解释了我希望程序如何工作:
1.)我有一个未绑定的datagridview,可以添加来自少数文本框的数据。 2.)一个名为Check-Out的按钮,这个按钮用于将我的datagridview数据传递给Access数据库.....这是我面临的问题.....有人可以帮我解决它.....
多谢...
我也提到了这个链接,但我对C#Insert all data of a datagridview to database at once并不太熟悉
你使事情变得比他们需要的更复杂。只需创建一个DataTable
并将其绑定到网格。当需要保存数据时,需要调用数据适配器的Update
方法来保存该批次。您可以使用相同的数据适配器通过调用DataTable
在FillSchema
中生成模式,然后使用命令构建器生成INSERT
命令,也可以手动构建模式和INSERT
命令。这里有些例子:
http://www.vbforums.com/showthread.php?469872-Retrieving-and-Saving-Data-in-Databases&highlight=
你需要在for循环之前打开连接并删除Command.ExecuteNonQuery()中的注释
您的代码如下所示
Dim Con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Music_Sales_Database.mdb;")
Dim Com As OleDbCommand
Dim SaleCode As Integer
Dim MusicID As String
Dim SubTotalPrice As Decimal
Dim Copies1 As Integer
Dim STR1 As String
SaleCode = 1
Com = New OleDbCommand
Com.Connection = Con
Connection.open()
For x As Integer = 0 To SalesDataGridView.Rows.Count - 1
MusicID = SalesDataGridView.Rows(x).Cells(0).Value
SubTotalPrice = SalesDataGridView.Rows(x).Cells(5).Value
Copies1 = SalesDataGridView.Rows(x).Cells(3).Value
STR1 = "INSERT INTO Sales(Sales_ID, Sales_Date, Copies, Music_ID, Staff_ID, Total_Price) VALUES (@Sales_ID, @Sales_Date, @Copies, @Music_ID, @Staff_ID, @Total_Price)"
Dim Comm As New OleDbCommand(STR1, Con)
Comm.Parameters.AddWithValue("@Sales_ID", SaleCode)
Comm.Parameters.AddWithValue("@Sales_Date", txtDateAndTime)
Comm.Parameters.AddWithValue("@Copies", Copies1)
Comm.Parameters.AddWithValue("@Music_ID", MusicID)
Comm.Parameters.AddWithValue("@Staff_ID", txtStaff_ID)
Comm.Parameters.AddWithValue("@Total_Price", SubTotalPrice)
Command.ExecuteNonQuery()
Comm.Dispose()
Next
Connection.Close()