• 0
™Sn!p3R™

خطأ فى هذا الكود ارجو التوضيح

سؤال

استخدمت هذا الكود بغرض إذا كان يوجد فى العمود الاول قيمه مشابه للقيمة الموجوده فى textbox8 يقوم بتنفيذ شرط if 

        If DataGridView5.Item(0, DataGridView5.Rows.Count - 1).Value = TextBox8.Text Then            If MsgBox("يوجد بالفعل سجل لهذا الشهر هل توافق على الاستبدال ؟ ", MsgBoxStyle.OkCancel, "!!تنبيه") = MsgBoxResult.Cancel Then            End If

يظهر هذا الخطأ

 

asas.jpg

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

9 إجابة على هذا السؤال .

  • 0

السلام عليكم

 

جرب ان تجعل الكود هكذا

 

 

TRY    

 

الكود الخاص بك هنا

 

   Catch ex As Exception
        

        End Try

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

@™Sn!p3R™

 

في اي مكان وضعت الكود؟ لانه حسب ما فهمت فان الكود يتنفذ ولا يوجد اي ROW في DATAGRIDVIEW

 

@mhmadokasha

 

ربما جوابك صحيح. وربما يحل المشكلة. ولكن...

حاول التخفيف من استعمال TRY/CATCH لان كثرة حصول الاخطاء ومحاولة احتواءها يبطئ عمل البرنامج.

انصح باسعمال IF/ENDIF للتحقق من ان الكود يجب ان ينفذ ام لا. ختى لا يحدث الخطأ من الاساس.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

@™Sn!p3R™

 

في اي مكان وضعت الكود؟ لانه حسب ما فهمت فان الكود يتنفذ ولا يوجد اي ROW في DATAGRIDVIEW

 

@mhmadokasha

 

ربما جوابك صحيح. وربما يحل المشكلة. ولكن...

حاول التخفيف من استعمال TRY/CATCH لان كثرة حصول الاخطاء ومحاولة احتواءها يبطئ عمل البرنامج.

انصح باسعمال IF/ENDIF للتحقق من ان الكود يجب ان ينفذ ام لا. ختى لا يحدث الخطأ من الاساس.

 

 

mhmadokasha

شكرا اخى جربت و ما نفع 

 

samir ibrahim

 

الكود مكتوب داخل زرار الحفظ للدتاجريد فيو اريده قبل ان يحفظ البيانات إذا كان الاى دى موجود بالداتا جريد فيو يقوم بالاستبدال ولا يقوم بحفظ سجل جديد هذا هو الكود المستخدم 

        If DataGridView5.Item(0, DataGridView5.Rows.Count - 1).Value = TextBox8.Text Then            If MsgBox("يوجد بالفعل سجل لهذا الشهر هل توافق على الاستبدال ؟ ", MsgBoxStyle.OkCancel, "!!تنبيه") = MsgBoxResult.Cancel Then            End If            Try                Dim SavInto As New OleDb.OleDbCommand                CreateConn()                SavInto.Connection = getConn()                SavInto.CommandType = CommandType.Text                SavInto.CommandText = "UPDATE total SET ryear='" & ComboBox4.Text & "' ,rmonth='" & ComboBox3.Text & "' ,ltotal= '" & TextBox6.Text & "' WHERE  ID = " & TextBox8.Text & "  "                OpenConn()                If SavInto.ExecuteNonQuery() Then                    'إذا تم تعديل قاعدة البيانات بنجاح يتم تعديل الداتاقريد مباشرة                    MsgBox("تم الاســـتبدال بنجـــاح", MsgBoxStyle.MsgBoxRight, "نجاح العملية")                    DataGridView5.Item(0, DataGridView5.CurrentCellAddress.Y).Value() = ComboBox4.Text                    DataGridView5.Item(1, DataGridView5.CurrentCellAddress.Y).Value() = ComboBox3.Text                    DataGridView5.Item(2, DataGridView5.CurrentCellAddress.Y).Value() = TextBox6.Text                End If                CloseConn()            Catch ex As Exception                MsgBox("صادف مشكله أثناء القيام بعمليه الإضافه , الرجاء المحاولة لاحقا", MsgBoxStyle.OkOnly, "تنبيه")            End Try        Else            Try                Dim SavInto As New OleDb.OleDbCommand                CreateConn()                SavInto.Connection = getConn()                SavInto.CommandType = CommandType.Text                SavInto.CommandText = "INSERT INTO total(ryear,rmonth,ltotal)" & _                "values ('" & ComboBox4.Text & "','" & ComboBox3.Text & "','" & TextBox6.Text & "') "                OpenConn()                If SavInto.ExecuteNonQuery() Then                    'إذا تمت عملية الإضافة بنجاح يتم اضافة الحقول إلى الداتا قريد مباشرة بدل استراجاعها من الداتابيس                    MsgBox("تمت إضافة السجل الجديد بنجاح")                    DataGridView5.Rows.Add()                    DataGridView5.Item(0, DataGridView5.Rows.Count - 1).Value = ComboBox4.Text                    DataGridView5.Item(1, DataGridView5.Rows.Count - 1).Value = ComboBox3.Text                    DataGridView5.Item(2, DataGridView5.Rows.Count - 1).Value = TextBox6.Text                Else                    MsgBox("فشلت عملية الإضافة", MsgBoxStyle.MsgBoxRight, "رسالة خطأ")                End If                CloseConn()            Catch ex As Exception                MsgBox("صادف مشكله أثناء القيام بعمليه الإضافه , الرجاء المحاولة لاحقا", MsgBoxStyle.OkOnly, "تنبيه")            End Try        End If
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

@™Sn!p3R™

 

 

الكود مكتوب داخل زرار الحفظ للدتاجريد فيو

 

لم تجاوب على سؤالي. هل هذا الكود موجد في button_click او sub datagridview_click()

 

جرب : ضعه في اول جملة من الكود الذي ارسلته فوق

 

If datagridview5.rows.count =0 then exit sub

تم تعديل بواسطه samir ibrahim
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جربت الكود اللي اعطيتك اياه؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لم يعمل معى للاسف 

عند التنفيذ يتم تجاهله و يعمل باقى الكود

توضيح بسيط 

فى عمود اسمه ID و الداتا جريد فييو 

و يتم ادخال ID اليه من Textbox8

عند ادخال ID مشابه لاى Id موجود فى الدتاجريد يقوم بتنفيذ الشرط 

تم تعديل بواسطه ™Sn!p3R™
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

أولاً: هذا الأسلوب فى العمل غير محبذ، يجب تحديد وظيفة كل أداة فتجعل زر خاص بالإضافة وزر خاص بالتعديل

 

ثانياً: عندما تريد البحث عن قيمة معينة فى الداتا جريد فيو فأحد الأساليب عمل حلقة تكرارية على كل الصفوف واختبار القيمة فى كل صف ولكنك اختبرت القيمة فى صف واحد فقط بهذا السطر

If DataGridView5.Item(0, DataGridView5.Rows.Count - 1).Value = TextBox8.Text Then

 

ثالثاً: أنت تسأل عن الآى دى فى حين أنك تخزن فى العمود الأول السنة، فكيف تخزن السنة وتسأل عن الأى دى فى نفس العمود؟؟؟؟

 

عموماً ربما تساعدك هذه النقاط فى توجيهك لتصحيح الخطأ عندك، إلا أننى أفضل استخدام أسلوب آخر فى التعامل مع قواعد البيانات وقد رفعت فيديوهات تعليمية لهذا الموضوع فى نفس المنتدى على الرابط التالى

 

http://arabteam2000-forum.com/index.php/topic/281614-%D8%A8%D8%A7%D9%84%D9%81%D9%8A%D8%AF%D9%8A%D9%88-%D8%A7%D9%84%D8%AE%D8%B7%D9%88%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-%D9%81%D9%89-%D8%A3%D9%89-%D9%85%D8%B4%D8%B1%D9%88%D8%B9/

 

ربما يفيدك هذا الأسلوب السهل البسيط فى إتمام عملك، ولكنه مكتوب بالسى شارب ويمكنك فهم الفكرة وتطبيقها بكود الفيجوال بيسك

تم تعديل بواسطه ema2000_t
8

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا اخى الكود الذى ارفقته قبل انا اعدل عليه باستخدام الاى دى 

 

و الفكرة هى برنامج يقوم بحساب صافى ربح كل شهر ولا اريد ان يكون لكل شهر اكثر من سجل فربما يقوم مستعمل البرنامج حفظ صافى الربح قبل انتهاء الشهر بأيام و يتم تغير قيمته فيعود ليحفظه مرة اخرى وبذلك يكون لديه سجلين لشهر واحد 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .