Премини към съдържанието

Препоръчан отговор


Има 1 приложение на  VB.NET/Accessи трябва да сейфам една фактура, но след като въведа нещата ми дава грешка Как да я оправя?

Number of query values and destination fields are not the same

 

Try
            auto()
            con = New OleDbConnection(cs)
            con.Open()
            Dim cb As String = "insert Into Sales(BillNo, BillDate,CustomerID, SubTotal, VATPer, VATAmount, STPer, STAmount, GrandTotal, TotalPayment, PaymentDue) VALUES ('" & txtBillNo.Text & "',#" & dtpBillDate.Text & "#,'" & txtCustomerID.Text & "'," & txtSubTotal.Text & "," & txtVATPer.Text & "," & txtVATAmt.Text & "," & txtSTPer.Text & "," & txtSTAmount.Text & "," & txtGrandTotal.Text & "," & txtTotalPayment.Text & "," & txtPaymentDue.Text & ")"
            cmd = New OleDbCommand(cb)
            cmd.Connection = con
            cmd.ExecuteNonQuery()
            If con.State = ConnectionState.Open Then
                con.Close()
            End If
            con.Close()

            For i = 0 To ListView1.Items.Count - 1
                con = New OleDbConnection(cs)
                Dim cd As String = "insert Into ProductSold(BillNo, ProductName,Quantity, Rate,Unit, Amount) VALUES (@d1,@d2,@d3,@d4,@d5,@d6)"
                cmd = New OleDbCommand(cd)
                cmd.Connection = con
                cmd.Parameters.AddWithValue("d1", txtBillNo.Text)
                cmd.Parameters.AddWithValue("d2", ListView1.Items(i).SubItems(1).Text)
                cmd.Parameters.AddWithValue("d3", ListView1.Items(i).SubItems(2).Text)
                cmd.Parameters.AddWithValue("d4", ListView1.Items(i).SubItems(3).Text)
                cmd.Parameters.AddWithValue("d5", ListView1.Items(i).SubItems(4).Text)
                cmd.Parameters.AddWithValue("d6", ListView1.Items(i).SubItems(5).Text)
                con.Open()
                cmd.ExecuteNonQuery()
                con.Close()
            Next
           
            For j = 0 To ListView1.Items.Count - 1
                con = New OleDbConnection(cs)
                con.Open()
                Dim cb1 As String = "update Temp_stock set TotalQuantity = TotalQuantity - (" & ListView1.Items(j).SubItems(2).Text & " *  " & ListView1.Items(j).SubItems(4).Text & ") where ProductName= '" & ListView1.Items(j).SubItems(1).Text & "'"
                cmd = New OleDbCommand(cb1)
                cmd.Connection = con
                cmd.ExecuteNonQuery()
                con.Close()
            Next
            con.Close()
            btnSave.Enabled = False
            btnPrint.Enabled = True
            MessageBox.Show("Successfully completed", "Order", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Не съм работил с аксес и въобще със служебни бази данни, но като гледам грешката, би следвало параметрите, които задаваш, да не отговарят по брой на полетата по предназначение.

Тези полета, какво представляват, на базата данни ли са, или ти ги задаваш, не знам, но може би ти знаеш и ще се сетиш.

Или може би по тип

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.