10-07-17, 01:48 PM
تصحيح الكود للانتهاء من مرحلة الفاتوره
مشكلة الكود فى الجزء ده بيدخل اول عنصر متباع وبيكرره فى الاصناف الى بعده
الكود كامل
مشكلة الكود فى الجزء ده بيدخل اول عنصر متباع وبيكرره فى الاصناف الى بعده
كود :
ss = "insert into [prosh_older] ([itemid], [qtnitem], [unititem], [totitem], [idpro]) values (@itemid, @qtnitem, @unititem, @totitem, @idpro)"
md = New OleDb.OleDbCommand(ss, con)
For u As Integer = 0 To dgvprodac.RowCount - 2
id_pro = dgvprodac.Rows(u).Cells(0).Value
qty = dgvprodac.Rows(u).Cells(2).Value
price = dgvprodac.Rows(u).Cells(3).Value
amount = dgvprodac.Rows(u).Cells(4).Value
md.Parameters.Add(New OleDb.OleDbParameter("@itemid", OleDb.OleDbType.Integer)).Value = id_pro
md.Parameters.Add(New OleDb.OleDbParameter("@qtnitem", OleDb.OleDbType.Integer)).Value = qty
md.Parameters.Add(New OleDb.OleDbParameter("@unititem", OleDb.OleDbType.Currency)).Value = price
md.Parameters.Add(New OleDb.OleDbParameter("@totitem", OleDb.OleDbType.Currency)).Value = amount
md.Parameters.Add(New OleDb.OleDbParameter("@idpro", OleDb.OleDbType.Integer)).Value = id_shirid
md.ExecuteNonQuery()
الكود كامل
كود :
Private Sub btnsave_Click(sender As Object, e As EventArgs) Handles btnsave.Click
Dim cmd As New OleDbCommand(String.Empty, con)
Dim ss As String
con.Open()
For Each r As DataGridViewRow In dgvprodac.Rows
Dim ad As Integer = Val(r.Cells(0).Value)
Dim txt As Integer = Val(r.Cells(2).Value)
cmd.CommandText = String.Format(" UPDATE [tab_pro] SET [qty] = qty -{0} WHERE [id] = {1} ", txt, ad)
cmd.ExecuteNonQuery()
Next
Try
ss = "INSERT INTO [tabolder] ([prosh], [sailman],[shirid]) VALUES (@date, @sailman, @ID)"
Dim md As New OleDbCommand(ss, con)
md.Parameters.AddWithValue("@date", dtolder.Value.Date)
md.Parameters.AddWithValue("@sailman", TXTGNAME.Text)
md.Parameters.AddWithValue("@ID", txtnamper.Text)
'con.Open()
md.ExecuteNonQuery()
md.CommandText = "SELECT @@IDENTITY"
md = New OleDb.OleDbCommand("select max(shirid) from tabolder", con)
Dim dm As OleDb.OleDbDataReader = md.ExecuteReader
dm.Read()
Dim id_shirid As Integer = dm(0)
dm.Close()
Dim id_pro, qty As Integer
Dim price, amount As Single
'المشكله هنا
ss = "insert into [prosh_older] ([itemid], [qtnitem], [unititem], [totitem], [idpro]) values (@itemid, @qtnitem, @unititem, @totitem, @idpro)"
md = New OleDb.OleDbCommand(ss, con)
For u As Integer = 0 To dgvprodac.RowCount - 2
id_pro = dgvprodac.Rows(u).Cells(0).Value
qty = dgvprodac.Rows(u).Cells(2).Value
price = dgvprodac.Rows(u).Cells(3).Value
amount = dgvprodac.Rows(u).Cells(4).Value
md.Parameters.Add(New OleDb.OleDbParameter("@itemid", OleDb.OleDbType.Integer)).Value = id_pro
md.Parameters.Add(New OleDb.OleDbParameter("@qtnitem", OleDb.OleDbType.Integer)).Value = qty
md.Parameters.Add(New OleDb.OleDbParameter("@unititem", OleDb.OleDbType.Currency)).Value = price
md.Parameters.Add(New OleDb.OleDbParameter("@totitem", OleDb.OleDbType.Currency)).Value = amount
md.Parameters.Add(New OleDb.OleDbParameter("@idpro", OleDb.OleDbType.Integer)).Value = id_shirid
md.ExecuteNonQuery()
Next
Catch ex As Exception
End Try
sqlstr = "select max (shirid) +1 from [tabolder] "
cmd = New OleDbCommand(sqlstr, con)
txtnamper.Text = cmd.ExecuteScalar()
con.Close()
MsgBox("تم حفظ الفاتوره")
dt.Rows.Clear()
txttotal.Clear()
Label15.Text = "..."
End Sub