2017-02-18 2 views
-1

Я использую Visual Basic (VB 2010). Как вставить несколько записей в базу данных с помощью MS Access 2007? Мой код не работает:Вставить несколько записей в базу данных с помощью MS Access 2007

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click 
     If DataGridView1.Rows(0).Cells(0).Value = "" Then 
      MsgBox("Belum ada transaksi", MsgBoxStyle.Exclamation, "Informasi") 
      Exit Sub 
     End If 
     If TextBox6.Text = "" Then 
      MsgBox("Jumlah bayar belum diinput!", MsgBoxStyle.Exclamation, "Informasi") 
      Exit Sub 
     End If 
     On Error Resume Next 
     If RadioButton1.Checked Then 
      For baris As Integer = 0 To DataGridView1.Rows.Count - 2 
       Dim simpan As String = "Insert into TBL_JUALTUNAI (NomorFaktur,TglTransaksi,WaktuTransaksi,KodeBarang,NamaBarang,HargaSatuan,JumlahBeli,Total) values " & _ 
     "('" & TextBox10.Text & "','" & TextBox11.Text & "','" & TextBox12.Text & "','" & DataGridView1.Rows(0).Cells(0).Value & "','" & DataGridView1.Rows(0).Cells(1).Value & "','" & DataGridView1.Rows(0).Cells(2).Value & "','" & DataGridView1.Rows(0).Cells(3).Value & "','" & DataGridView1.Rows(0).Cells(4).Value & "')" 
       CMD = New OleDbCommand(simpan, CONN) 
       CMD.ExecuteNonQuery() 
      Next baris 
     End If 

     If RadioButton2.Checked Then 
      Dim simpan1 As String = "Insert into TBL_PELANGGAN (NomorFaktur,TglTransaksi,WaktuTransaksi,NamaPelanggan,AlamatPelanggan,TelpPelanggan,KodeBarang,NamaBarang,HargaSatuan,JumlahBeli,Total) values " & _ 
"('" & TextBox10.Text & "','" & TextBox11.Text & "','" & TextBox12.Text & "','" & DataGridView1.Rows(0).Cells(7).Value & "','" & DataGridView1.Rows(0).Cells(8).Value & "','" & DataGridView1.Rows(0).Cells(9).Value & "','" & DataGridView1.Rows(0).Cells(0).Value & "','" & DataGridView1.Rows(0).Cells(1).Value & "','" & DataGridView1.Rows(0).Cells(2).Value & "','" & DataGridView1.Rows(0).Cells(3).Value & "','" & DataGridView1.Rows(0).Cells(4).Value & "')" 
      CMD = New OleDbCommand(simpan1, CONN) 
      CMD.ExecuteNonQuery() 
     End If 

     CMD = New OleDbCommand("select * from TBL_BARANG where KodeBarang='" & DataGridView1.Rows(0).Cells(0).Value & "'", CONN) 
     RD = CMD.ExecuteReader 
     RD.Read() 
     If RD.HasRows Then 
      Dim kurangistok As String = "update TBL_BARANG set StockBarang= '" & RD.Item(4) - DataGridView1.Rows(0).Cells(3).Value & "' where KodeBarang='" & DataGridView1.Rows(0).Cells(0).Value & "'" 
      CMD = New OleDbCommand(kurangistok, CONN) 
      CMD.ExecuteNonQuery() 
     End If 
    End Sub 
End Class 
+0

Каким образом этот код не работает? Похоже, вы выполняете инструкции 'INSERT', разве это не то, что вы хотели сделать? – David

+0

спасибо за ответ sir, только одна запись в базу данных на datagridview, а не несколько записей .... –

+0

Когда вы проходите через это в отладчике, где поведение отличается от того, что вы ожидаете? У вас есть некоторые условные и циклы, возможно, состояние переменных не то, что вы предполагаете. Когда вы проверяете, что происходит? – David

ответ

0

С помощью этого кода вы не собираетесь вставлять сразу несколько записей. Каждая команда INSERT будет вставлять только одну строку, поэтому вам нужно использовать несколько команд INSERT для нескольких строк.

Если я правильно понимаю вас, у вас есть DataGridView, где есть несколько строк, и вы хотите вставить выбранные строки, да? Исправьте меня, если я ошибаюсь, но что вы должны делать, это перечислять строки DataGridView и вставлять строку в базу данных для каждой строки в этом DataGridView?

В этом случае используйте цикл For Each для извлечения строк (DataGridView1.Rows), а затем выполните команду INSERT в этом цикле.

Редактировать: В ответ на ваш комментарий, я не знаю полного контекста вашего кода, но я могу вас начать.

For Each dgvRow As DataGridViewRow In dgv.Rows 
     Dim myCommand As String = "INSERT INTO " 'From here, insert your parameters for that row. You can call on dgvRow.Cells. 
     CMD = New OleDbCommand(myCommand, CONN) 
     CMD.ExecuteNonQuery() 
    Next 
+0

спасибо за ответ sir, правильно, я собираюсь вставить сразу несколько записей и собираюсь вставить (все записи, возможно, более 5 записей) на выбранные строки ... вы можете написать пример в основном из моего кода? спасибо до ... –

+0

Конечно, я только что отредактировал сообщение, чтобы вы могли использовать его для начала. –

+0

Почему нисходящий, кто-нибудь? –

Смежные вопросы