15-09-20, 05:20 PM
السلام عليكم اخواني الكود التالي يعمل بشكل ممتاز ولاكن هل يمنك كتابته بطريقة اخرى حيث ان الوضع الحالي عند كثرة السجلات يؤدي الى البطيء الشديد وشكرا لكم جميعا
Dim sql = "select * from invoice_add where invoice_number=N'" & (invoice_number.Text) & "'"
Dim adp As New SqlDataAdapter(sql, sqlconn)
Dim ds As New DataSet
adp.Fill(ds)
Dim dt = ds.Tables(0)
If dt.Rows.Count > 0 Then
For a = 0 To dgv.Rows.Count - 1
adp = New SqlDataAdapter("select * from item where itemcode=N'" & (dgv.Rows(a).Cells(0).Value) & "'", sqlconn)
ds = New DataSet
adp.Fill(ds)
dt = ds.Tables(0)
Dim dr3 = dt.Rows(0)
'تحديث سجل كمية المادة المتبقية
dr3!itemcount = Val(dgv.Rows(a).Cells(14).Value)
dr3!total_price = dr3!itemcount * dr3!itembuyprice
'تحديث سجل كمية المادة المباعه
If dr3!out_count.ToString = "" Then
dr3!out_count = 0
dr3!out_count = Val(dr3!out_count) + Val(dgv.Rows(a).Cells(16).Value)
dr3!Profits = Val(dr3!Profits) + Val(dgv.Rows(a).Cells(8).Value)
Else
dr3!out_count = Val(dr3!out_count) + Val(dgv.Rows(a).Cells(16).Value)
dr3!Profits = Val(dr3!Profits) + Val(dgv.Rows(a).Cells(8).Value)
End If
dr3!date_sale = invoice_date.Value
Dim cmd4 As New SqlCommandBuilder(adp)
adp.Update(dt)
Next
adp.Dispose()
ds.Dispose()
dt.Dispose()
'---------------------------------------------------------------------------
'----------------------------------------------------------------------------
My.Computer.Audio.Play(My.Resources.alert, AudioPlayMode.WaitToComplete)
End If
Dim adp As New SqlDataAdapter(sql, sqlconn)
Dim ds As New DataSet
adp.Fill(ds)
Dim dt = ds.Tables(0)
If dt.Rows.Count > 0 Then
For a = 0 To dgv.Rows.Count - 1
adp = New SqlDataAdapter("select * from item where itemcode=N'" & (dgv.Rows(a).Cells(0).Value) & "'", sqlconn)
ds = New DataSet
adp.Fill(ds)
dt = ds.Tables(0)
Dim dr3 = dt.Rows(0)
'تحديث سجل كمية المادة المتبقية
dr3!itemcount = Val(dgv.Rows(a).Cells(14).Value)
dr3!total_price = dr3!itemcount * dr3!itembuyprice
'تحديث سجل كمية المادة المباعه
If dr3!out_count.ToString = "" Then
dr3!out_count = 0
dr3!out_count = Val(dr3!out_count) + Val(dgv.Rows(a).Cells(16).Value)
dr3!Profits = Val(dr3!Profits) + Val(dgv.Rows(a).Cells(8).Value)
Else
dr3!out_count = Val(dr3!out_count) + Val(dgv.Rows(a).Cells(16).Value)
dr3!Profits = Val(dr3!Profits) + Val(dgv.Rows(a).Cells(8).Value)
End If
dr3!date_sale = invoice_date.Value
Dim cmd4 As New SqlCommandBuilder(adp)
adp.Update(dt)
Next
adp.Dispose()
ds.Dispose()
dt.Dispose()
'---------------------------------------------------------------------------
'----------------------------------------------------------------------------
My.Computer.Audio.Play(My.Resources.alert, AudioPlayMode.WaitToComplete)
End If