更新时间:2023-02-10 13:48:15
您需要在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()
对于x As Integer = 0到SalesDataGridView.Rows.Count - 1
MusicID = SalesDataGridView.Rows(x).Cells ).Value
SubTotalPrice = SalesDataGridView.Rows(x).Cells(5).Value
Copies1 = SalesDataGridView.Rows(x).Cells(3).Value
STR1 =INSERT INTO销售(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()
下一页
Connection.Close()
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()
Hallo to all my senior, I don't know why it is no any error showing and can't save it in Access Database.
The whole code is in the button, I explain how I want my the program works:
1.) I have a unbound datagridview that can add data from few textbox. 2.) A button called Check - Out, this button is for passing my datagridview data to Access Database.....this is the problem I face.....Can somebody help me to solve it.....
Thx a lot...
I also referred to the this link, but I'm not too familiar with C# Insert all data of a datagridview to database at once
you were required to open connection before the for loop and remove the comment at Command.ExecuteNonQuery()
your code will be as shown below
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()