تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة في حدث اختيار قيمة من combobox
#1
اضع هذا الكود في حدث TextBox1_TextChanged   :
 Dim com1 As New SqlCommand("select  distinct name from table1  where name = '" & TextBox1.Text & "'", con)
        Dim s1 As New DataSet
        Dim t1 As New SqlDataAdapter
        t1.SelectCommand = com1
        t1.Fill(s1, "table1  ")


 If s1.Tables(0).Rows.Count <> 0 Then
  ComboBox1.DataSource = s1.Tables("table1  ")
            ComboBox1.DisplayMember = "id_no"
            ComboBox1.ValueMember = "id_no"

وذلك حتي يتم اختيار الارقام الخاصة بهذا الاسم وملأ الكومبو بوكس بهم وبالفعل يتم اختيار الارقام الخاصة بالاسم عندما اكتب الاسم في التيكست بوكس 

وبعد ذلك اضع هذا الكود في حدث ComboBox1_SelectedIndexChanged
Dim com2 As New SqlCommand("select * from table1  where  id_no='" & ComboBox1.Text & "'  ", con)
        Dim s2 As New DataSet
        Dim t2 As New SqlDataAdapter
        t2.SelectCommand = com2
        t2.Fill(s2, "table1  ")
 If s2.Tables(0).Rows.Count <> 0 Then

            Try
                TextBox10.Text = s2.Tables("table1").Rows(0)(3)
                TextBox2.Text = s2.Tables("table1").Rows(0)(9)
                ComboBox2.Text = s2.Tables("table1").Rows(0)(5)

            Catch ex As Exception
            End Try
        End If

وذلك حتى يتم اختيار البيانات الخاصة بكل رقم وعرضها 

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

"conversion faild when converting the varchar value'system.data..dataRowView' to type int"

ارجو المساعدة حيث راجعت كل شئ وانواع الحقول في قاعدة البيانات ومقارنتها بالكود ولم اجد خطأ ولا اعلم اين المشكلة
الرد }}}
تم الشكر بواسطة:
#2
المشكلة هنا هى ان الاحاداث بالنسبة للكمبو بوكس والتيكست بوكس متداخلة فيتم التضارب بينهم
وقد حدثت معى من قبل ولاكن بالعمل الان لن استطيع افادتك اكثر من هذا
جرب و سوف اتابع معك من بعد
الرد }}}
تم الشكر بواسطة:
#3
الافضل أن تدرج مشروعك للتعديل عليه
Don't Be The Perfect one
be the right one
الرد }}}
تم الشكر بواسطة:
#4
(22-06-16, 07:52 PM)boudyonline كتب : الافضل أن تدرج مشروعك للتعديل عليه

أرفقت المشروع وقاعدة البيانات      وحدث ان الاكواد جميعها لا تعمل الآن على الرغم من انها صحيحة ..لا أدري أين المشكلة 

ارجو المساعدة


الملفات المرفقة
.rar   test.rar (الحجم : 949.48 ك ب / التحميلات : 63)
الرد }}}
تم الشكر بواسطة:
#5
السلام عليكم ورحمة الله وبركاته
اخي ما المطلوب من البرنامج
انا لم افهم شيئا
انت عايز ايه بالضبط
التميز و الابداع شعاري
الرد }}}
تم الشكر بواسطة:
#6
أخي الفاضل :

ما هي فكرتك من البرنامج ؟؟؟
Don't Be The Perfect one
be the right one
الرد }}}
تم الشكر بواسطة:
#7
شيئ طبيعي اخي انظر رسالة الخطأ
conversion faild when converting the varchar value'system.data..dataRowView' to type int"
العناصر الموجودة في الكومبو بوكس هي DataRowView قم بالتقاط قيم الحقل الذي تريده من داخل الصف المحدد في الكومبوبوكس
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: نسيم , نسيم
#8
boudyonline
[quote pid='78513' dateline='1466687526']
أخي الفاضل :

ما هي فكرتك من البرنامج ؟؟؟
[/quote]

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

 Dim com1 As New SqlCommand("select  distinct name from table1  where name = '" & TextBox1.Text & "'", con)
        Dim s1 As New DataSet
        Dim t1 As New SqlDataAdapter
        t1.SelectCommand = com1
        t1.Fill(s1, "table1  ")


 If s1.Tables(0).Rows.Count <> 0 Then
  ComboBox1.DataSource = s1.Tables("table1  ")
            ComboBox1.DisplayMember = "id_no"
            ComboBox1.ValueMember = "id_no"

وعند اختيار اي مادة من الكومبوبوكس تظهر الدرجة والتقدير في textboxs  مخصصة لهم 
وذلك من خلال الكود في حدث combobox1_selectedindexchanged
Dim com2 As New SqlCommand("select * from table1  where  id_no='" & ComboBox1.Text & "'  ", con)
        Dim s2 As New DataSet
        Dim t2 As New SqlDataAdapter
        t2.SelectCommand = com2
        t2.Fill(s2, "table1  ")
 If s2.Tables(0).Rows.Count <> 0 Then

            Try
                TextBox10.Text = s2.Tables("table1").Rows(0)(3)
                TextBox2.Text = s2.Tables("table1").Rows(0)(9)
                ComboBox2.Text = s2.Tables("table1").Rows(0)(5)

            Catch ex As Exception
            End Try
        End If
ولكن بمجرد تشغيل الكود وكتابة الاسم في ال textbox1 يظهر هذا الخطأ
conversion faild when converting the varchar value'system.data..dataRowView' to type int"
الرد }}}
تم الشكر بواسطة:
#9
اخي الفاضل :

اشكرك لتوضيح فكرة برنامجك

وبهذا الوضع الذي شرحته وبعد مراجعة قاعدة البيانات أري من وجهة نظري أنك تحتاج لإعادة تصميم قاعدة البيانات

حيث أنه ليس من المنطق وضع جميع البيانات في جدول واحد في حين أن هناك علاقة One to One  وكذلك علاقة One to Many  بين البيانات بعضها ببعض

وذلك طبقاً لشرحك لوظيفة برنامجك وبالطبع سيسهل عليك تعديل قاعدة البيانات في استدعاء الجداول واستخدامها في الشاشات

المصممة ببرنامجك

أتمنى أن أكون قد أفدتك

ورمضان كريم
Don't Be The Perfect one
be the right one
الرد }}}
تم الشكر بواسطة:
#10
(24-06-16, 12:31 AM)ابو ليلى كتب : شيئ طبيعي اخي انظر رسالة الخطأ
conversion faild when converting the varchar value'system.data..dataRowView' to type int"
العناصر الموجودة في الكومبو بوكس هي DataRowView قم بالتقاط قيم الحقل الذي تريده من داخل الصف المحدد في الكومبوبوكس
مامعنى اخي ان العناصر الموجودة فبي الكومبوبوكس هي datarowview وكيف التقط القيم من الصف في الكومبوبوكس 

فهل تقصد ان الخطأ في احد الكودين الموجودين في حدث combobox1_selected index changed:
select * from table1  where  id_no='" & ComboBox1.Text & "'  أو هذا
 If s2.Tables(0).Rows.Count <> 0 Then



            Try

               

                ComboBox2.Text = s2.Tables("table1").Rows(0)(5)



            Catch ex As Exception
            End Try

او الخطأ يوجد في حدث textbox1_textchanged
 Dim com1 As New SqlCommand("select  distinct name from table1  where name = '" & TextBox1.Text & "'", con)

        Dim s1 As New DataSet

        Dim t1 As New SqlDataAdapter

        t1.SelectCommand = com1

        t1.Fill(s1, "table1  ")





 If s1.Tables(0).Rows.Count <> 0 Then

  ComboBox1.DataSource = s1.Tables("table1  ")

            ComboBox1.DisplayMember = "id_no"
            ComboBox1.ValueMember = "id_no"
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم