المشاركات : 9
المواضيع 1
الإنتساب : Aug 2020
السمعة :
0
الشكر: 3
تم شكره 9 مرات في 4 مشاركات
السلام عليكم
لو سمحتوا شو حل هاي الرسالة الخطأ
System.InvalidOperationException: 'محاولة غير صالحة لاستدعاء MetaData في الوقت الذي يكون القارئ فيه مغلقًا.'
المشاركات : 105
المواضيع 10
الإنتساب : Sep 2019
السمعة :
7
الشكر: 2
تم شكره 100 مرات في 65 مشاركات
المشاركات : 9
المواضيع 1
الإنتساب : Aug 2020
السمعة :
0
الشكر: 3
تم شكره 9 مرات في 4 مشاركات
(12-11-21, 12:50 PM)mrfenix93 كتب : ممكن صورة الكود المستخدم
كود :
Public Sub Insert_By_ID_2()
Dim x As Integer
'Try
If Con.State = 1 Then Con.Close()
Con.Open()
Dim cmd As New SqlCommand(" select * from View_Store where Prd_Code=@Prd_Code", Con)
cmd.Parameters.Clear()
cmd.Parameters.AddWithValue("@Prd_Code", SqlDbType.VarChar).Value = Prd_Code.Text
Dim adp As New SqlDataAdapter(cmd)
Dim dr As SqlDataReader
dr = cmd.ExecuteReader
If dr.HasRows Then
While dr.Read
For i As Integer = 0 To dgvSale.Rows.Count - 1
If dgvSale.Rows(i).Cells(1).Value = Prd_Code.Text Then
dgvSale(5, i).Value = dgvSale(5, i).Value + 1
dgvSale(6, i).Value = dgvSale(5, i).Value * dgvSale(4, i).Value
dgvSale(8, i).Value = dgvSale(5, i).Value * dgvSale(7, i).Value
Exit Sub
End If
Next
dgvSale.Rows.Add()
x = dgvSale.Rows.Count - 1
dgvSale(0, x).Value = dr("Prd_ID").ToString
dgvSale(1, x).Value = dr("Prd_Code").ToString
dgvSale(2, x).Value = dr("Prd_Name").ToString
dgvSale(3, x).Value = dr("UnitName").ToString
dgvSale(4, x).Value = dr("SellPrice").ToString
dgvSale(7, x).Value = dr("BuyPrice").ToString
dgvSale(5, x).Value = 1
dgvSale(6, x).Value = dgvSale(5, x).Value * dgvSale(4, x).Value
dgvSale(8, x).Value = dgvSale(5, x).Value * dgvSale(7, x).Value
TXTQty.Text = dr("Qty").ToString
TXTPrdLimit.Text = dr("PrdLimit").ToString
If Val(TXTQty.Text) < Val(TXTPrdLimit.Text) Then
TXTQty.BackColor = Color.Red
MsgBox(" تنبيه الكمية الموجودة اقل من حد الطلب", 0, "")
Else
TXTQty.BackColor = Color.White
End If
End While
dr.Close()
Con.Close()
Else
MsgBox("كود المنتج الذي قمت بادخاله غير موجود", 0, "")
End If
'Catch ex As Exception
'Con.Close()
'End Try
End Sub
المشاركات : 476
المواضيع 33
الإنتساب : Mar 2014
السمعة :
175
الشكر: 366
تم شكره 1393 مرات في 471 مشاركات
في اي سطر يشير طيب عند ظهور الخطأ
المشاركات : 9
المواضيع 1
الإنتساب : Aug 2020
السمعة :
0
الشكر: 3
تم شكره 9 مرات في 4 مشاركات
12-11-21, 10:36 PM
(آخر تعديل لهذه المشاركة : 12-11-21, 10:49 PM {2} بواسطة kharbatha.)
dgvSale(1, x).Value = dr("Prd_Code").ToString
اخوي الرسالة تظهر عند الغاء try
وعند تشغيل try لا تظهر الرسالة ولكن لا يتم تعبئة الجريد فيو
المشاركات : 476
المواضيع 33
الإنتساب : Mar 2014
السمعة :
175
الشكر: 366
تم شكره 1393 مرات في 471 مشاركات
While dr.Read اظنها تكفي عن استخدام dr.HasRows
المشاركات : 9
المواضيع 1
الإنتساب : Aug 2020
السمعة :
0
الشكر: 3
تم شكره 9 مرات في 4 مشاركات
(12-11-21, 10:51 PM)Anas Mahmoud كتب : While dr.Read اظنها تكفي عن استخدام dr.HasRows
نفس الخطأ بدون dr.HasRows
المشاركات : 9
المواضيع 1
الإنتساب : Aug 2020
السمعة :
0
الشكر: 3
تم شكره 9 مرات في 4 مشاركات
تم الحل بتغيير الكود الى الكود التالي
كود :
Private Sub INSERTDGV()
Try
If Con.State = 1 Then Con.Close()
Con.Open()
Dim cmd As New SqlCommand(" select * from View_Store where Prd_Code='" + Prd_Code.Text + "'", Con)
Dim dt2 As New DataTable
Dim adp As New SqlDataAdapter(cmd)
adp.Fill(dt2)
If dt2.Rows.Count > 0 Then
For i As Integer = 0 To dgvSale.Rows.Count - 1
If dgvSale.Rows(i).Cells(1).Value = Prd_Code.Text Then
dgvSale(5, i).Value = Val(TXTQty.Text) + Val(dgvSale(5, i).Value)
dgvSale(6, i).Value = dgvSale(5, i).Value * dgvSale(4, i).Value
dgvSale(8, i).Value = dgvSale(5, i).Value * dgvSale(7, i).Value
Exit Sub
End If
Next
dgvSale.Rows.Add()
Dim x As Integer
x = dgvSale.Rows.Count - 1
dgvSale(0, x).Value = dt2.Rows(0).Item("Prd_ID")
dgvSale(1, x).Value = dt2.Rows(0).Item("Prd_Code")
dgvSale(2, x).Value = dt2.Rows(0).Item("Prd_Name")
dgvSale(3, x).Value = dt2.Rows(0).Item("UnitName")
dgvSale(4, x).Value = dt2.Rows(0).Item("SellPrice")
dgvSale(7, x).Value = dt2.Rows(0).Item("BuyPrice")
dgvSale(5, x).Value = TXTQty.Text
dgvSale(6, x).Value = dgvSale(5, x).Value * dgvSale(4, x).Value
dgvSale(8, x).Value = dgvSale(5, x).Value * dgvSale(7, x).Value
TXTQtyAVILABEL.Text = dt2.Rows(0).Item("Qty")
TXTPrdLimit.Text = dt2.Rows(0).Item("PrdLimit")
If Val(TXTQtyAVILABEL.Text) < Val(TXTPrdLimit.Text) Then
TXTQtyAVILABEL.BackColor = Color.Red
MsgBox(" تنبيه الكمية الموجودة اقل من حد الطلب", 0, "")
Else
TXTQtyAVILABEL.BackColor = Color.White
End If
Prd_Code.Text = ""
TXTQty.Clear()
Prd_Code.Focus()
InvoiceTotal()
Invoicebuy()
End If
Con.Close()
Catch ex As Exception
Con.Close()
End Try
End Sub
|