![]() |
|
مشكلة فى حفظ اكتر من صنفين عند حفظ الفاتورة - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : مشكلة فى حفظ اكتر من صنفين عند حفظ الفاتورة (/showthread.php?tid=24650) |
مشكلة فى حفظ اكتر من صنفين عند حفظ الفاتورة - atef_020 - 25-04-18 لسلام عليكم عند مشكلة عندما ادخل اكتر من صنفين فى الداتا جريد فيو واقوم بحفظ الفاتورة فتاتى الرسالة دى Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index [img=973x800] [/img]PHP كود : Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickRE: مشكلة فى حفظ اكتر من صنفين عند حفظ الفاتورة - حريف برمجة - 25-04-18 مبدأياً أستبدل هذا السطر : For i As Integer = 0 To SellDataGridView.RowCount - 2 بهذا السطر : For i As Integer = 0 To SellDataGridView.RowCount - 3 أو هذا : For i As Integer = 1 To SellDataGridView.RowCount - 1 RE: مشكلة فى حفظ اكتر من صنفين عند حفظ الفاتورة - atef_020 - 25-04-18 (25-04-18, 01:50 PM)حريف برمجة كتب : مبدأياً أستبدل هذا السطر : نفس المشكلة اخى الكريم وبيحدد المشكلة فى السطر دة code = SellDataGridView.Rows(i).Cells(0).Value RE: مشكلة فى حفظ اكتر من صنفين عند حفظ الفاتورة - حريف برمجة - 25-04-18 ارفق مثال بسيط للمشكلة لحلها . RE: مشكلة فى حفظ اكتر من صنفين عند حفظ الفاتورة - elmezo - 25-04-18 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If con.State = ConnectionState.Open Then con.Close() Dim strInsert As String = " Insert into tb1([Date],[SelMan],[total])values(@Date,@SelMan,@total)" cmd = New OleDb.OleDbCommand(strInsert, con) cmd.Parameters.Add(New OleDb.OleDbParameter("@Date", OleDb.OleDbType.VarChar)).Value = TextBox1.Text cmd.Parameters.Add(New OleDb.OleDbParameter("@SelMan", OleDb.OleDbType.VarChar)).Value = SelMan.Text cmd.Parameters.Add(New OleDb.OleDbParameter("@total", OleDb.OleDbType.VarChar)).Value = SelMdataTextBox.Text con.Open() cmd.ExecuteNonQuery() cmd = New OleDb.OleDbCommand("select max(id) from tb1", con) Dim dr As OleDb.OleDbDataReader = cmd.ExecuteReader dr.Read() 'اضافة تفاصيل الفاتورة Dim ID_tb1 As Integer = dr(0) dr.Close() Dim code, quant As Integer Dim price, total As Double strInsert = "Insert into sell(code,ID_tb1,Name,quant,price,total)values(@code,@ID_tb1,@Name,@quant,@price,@total)" cmd = New OleDb.OleDbCommand(strInsert, con) For i As Integer = 0 To SellDataGridView.RowCount - 1 code = SellDataGridView.Rows(i).Cells(0).Value Name = SellDataGridView.Rows(i).Cells(1).Value quant = SellDataGridView.Rows(i).Cells(2).Value price = SellDataGridView.Rows(i).Cells(3).Value total = SellDataGridView.Rows(i).Cells(4).Value cmd = New OleDbCommand(strInsert, con) cmd.Parameters.Add(New OleDb.OleDbParameter("@code", OleDb.OleDbType.Integer)).Value = code cmd.Parameters.Add(New OleDb.OleDbParameter("@ID_tb1", OleDb.OleDbType.Integer)).Value = ID_tb1 cmd.Parameters.Add(New OleDb.OleDbParameter("@Name", OleDb.OleDbType.VarChar)).Value = Name cmd.Parameters.Add(New OleDb.OleDbParameter("@quant", OleDb.OleDbType.Integer)).Value = quant cmd.Parameters.Add(New OleDb.OleDbParameter("@price", OleDb.OleDbType.Currency)).Value = price cmd.Parameters.Add(New OleDb.OleDbParameter("@total", OleDb.OleDbType.Currency)).Value = total cmd.ExecuteNonQuery() SellDataGridView.Rows.RemoveAt(SellDataGridView.CurrentRow.Index) Next add_number() con.Close() End Sub جرب هذا وتأكد من ان الاسماء صحيحة اى ان القيمة الصحيحة للID هى 0 code = SellDataGridView.Rows(i).Cells(0).Value فيمكن ان يكون 1 وليس 0 تأكد منها وضع هذا الكود وانشاء الله تنحل المشكلة RE: مشكلة فى حفظ اكتر من صنفين عند حفظ الفاتورة - atef_020 - 25-04-18 لا لم يتم الحل اخى الكريم RE: مشكلة فى حفظ اكتر من صنفين عند حفظ الفاتورة - atef_020 - 25-04-18 لم تحل هذه المشكلة وممكن طلب فى انى اذا كانت كمية الصنف اكثر من واحد فانى اضغط f4 مثلا قبل كتابو كود الصنف ليذهب بعد كتابة الكود الى cell (3 الى خانة الكمية فى داتا جريد فيو لتعديل الكمية - 'طلب اخر اذا كانت نفس الصنف موجود فى الداتا جريد فيو وكتابتة مرة اخرى يتم تجميعة فى سطر واحد RE: مشكلة فى حفظ اكتر من صنفين عند حفظ الفاتورة - ابو ليلى - 25-04-18 السلام عليكم و رحمة الله و بركاته لو نظرت الى رقم السطر الذي تحصل به المشكلة لعرفت السبب الحل , اما ان تفحص الصف قبل العملية وفق الكود التالي PHP كود : For i As Integer = 0 To SellDataGridView.RowCount - 1PHP كود : For Each Dgrow As DataGridViewRow In SellDataGridView.Rowsبالتوفيق RE: مشكلة فى حفظ اكتر من صنفين عند حفظ الفاتورة - atef_020 - 26-04-18 اشكرك اخى الكريم ابو ليلى على الرد بس انا استخدمت الطريقة الثانية واضفت 15 سطر الى الدتا جريد فيو وضغط على حفظ فقام بحفط 8 اسطر فقط وتبقى 7 قمت بالضغط على حفظ فحفظ 4 اسطر ثم 1 وهكذا مش عارف لية RE: مشكلة فى حفظ اكتر من صنفين عند حفظ الفاتورة - atef_020 - 27-04-18 مفيش اى حل |