تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] استفسار :- بخصوص نقل الداتا من DataGridView عن طريق CheckBoxColumn
#1
السلام عليكم ورحمة الله

مشكله تعبتني 

عندي كود ينقل البينات من DataGridView   لانزلها في قاعدة البيانات

عن طريقه اختيار معلومات معينه بالضغط على CheckBoxColumn
   

اختار الي اريده ان كان سطر واحد او اكثر

المهم الكود شغال ينقل وينزل في القاعدة

المشكله في حالت عدم الاشاره على CheckBoxColumn
يطلع لي مسج
كود :
    MessageBox.Show("Not Checked")


ولكن هذا المسج يطلع لي  على  عدد الاسطر الموجوده في DataGridView
   

يعني ما يطلع مرة واحد فقط ويختفي لا اذا كانت عدد الاسطر في ال DataGridView  
4 يطلع لي المسج اربع مرات

هذا الكود 

كود :
       For r As Integer = 0 To DataGridView2.Rows.Count - 1
           Dim check As Boolean = CType(DataGridView2.Rows(r).Cells(0).Value, Boolean)

           If check = True Then

               itm2 = DataGridView2.Rows(r).Cells(2).Value
               itm3 = DataGridView2.Rows(r).Cells(3).Value
               itm4 = DataGridView2.Rows(r).Cells(4).Value
               itm5 = DataGridView2.Rows(r).Cells(5).Value
               itm6 = DataGridView2.Rows(r).Cells(6).Value
               itm7 = DataGridView2.Rows(r).Cells(7).Value
               itm8 = DataGridView2.Rows(r).Cells(8).Value


               cmdxa = New SQLiteCommand("INSERT INTO db (omcall ,qso_date ,timeutc ,bands ,modes ,rst_sent,rst_rcvd) Values (@omcall ,@qso_date ,@timeutc ,@bands ,@modes ,@rst_sent,@rst_rcvd)") With {
               .Connection = conxa
               }
               cmdxa.Parameters.Clear()
               cmdxa.Parameters.AddWithValue("@omcall", itm2.Trim())
               cmdxa.Parameters.AddWithValue("@qso_date", itm3.Trim())
               cmdxa.Parameters.AddWithValue("@timeutc", Trim(Convert.ToString(itm4)))
               cmdxa.Parameters.AddWithValue("@bands", itm5.Trim())
               cmdxa.Parameters.AddWithValue("@modes", itm6.Trim())
               cmdxa.Parameters.AddWithValue("@rst_sent", itm7.Trim())
               cmdxa.Parameters.AddWithValue("@rst_rcvd", itm8.Trim())
               If conxa.State <> ConnectionState.Open Then conxa.Open()
               cmdxa.ExecuteNonQuery()
               conxa.Close()
               Application.DoEvents()


           Else
               MessageBox.Show("Not Checked")

           End If
           Next

اتوقع اعادة ضهور المسج بسبب 
 Next

حاولت اغير مكانه بس ما ضبط 

بارك الله فيكم وشكرا على المساعده
الرد
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاتة 



كود :
 Dim HasAnyCheck As Boolean = False
       ' لتسريع العملية تم إخراج إنشاء الأمر وفتح الإتصال خارج الإلتفاف
       ' SQLiteCommand لا تحتاج في كل مرة تعريف جملة الإستعلام لكائن
       ' هي مرة واحد في حياتة كلها
       cmdxa = New SQLiteCommand("INSERT INTO db (omcall ,qso_date ,timeutc ,bands ,modes ,rst_sent,rst_rcvd) Values (@omcall ,@qso_date ,@timeutc ,@bands ,@modes ,@rst_sent,@rst_rcvd)") With {
               .Connection = conxa
               }
       conxa.Open() ' الأفضل فتح الإتصال مرة واحدة فقط وليس في كل لفة

       For r As Integer = 0 To DataGridView2.Rows.Count - 1
           Dim check As Boolean = CType(DataGridView2.Rows(r).Cells(0).Value, Boolean)

           If check = True Then
               HasAnyCheck = True
               itm2 = DataGridView2.Rows(r).Cells(2).Value
               itm3 = DataGridView2.Rows(r).Cells(3).Value
               itm4 = DataGridView2.Rows(r).Cells(4).Value
               itm5 = DataGridView2.Rows(r).Cells(5).Value
               itm6 = DataGridView2.Rows(r).Cells(6).Value
               itm7 = DataGridView2.Rows(r).Cells(7).Value
               itm8 = DataGridView2.Rows(r).Cells(8).Value



               cmdxa.Parameters.Clear()
               cmdxa.Parameters.AddWithValue("@omcall", itm2.Trim())
               cmdxa.Parameters.AddWithValue("@qso_date", itm3.Trim())
               cmdxa.Parameters.AddWithValue("@timeutc", Trim(Convert.ToString(itm4)))
               cmdxa.Parameters.AddWithValue("@bands", itm5.Trim())
               cmdxa.Parameters.AddWithValue("@modes", itm6.Trim())
               cmdxa.Parameters.AddWithValue("@rst_sent", itm7.Trim())
               cmdxa.Parameters.AddWithValue("@rst_rcvd", itm8.Trim())

               cmdxa.ExecuteNonQuery()

               Application.DoEvents()

           End If
       Next

       conxa.Close() ' بعد الإنتهاء إغلاق الإتصال

       If Not HasAnyCheck Then
           MessageBox.Show("Not Checked")
       End If
تحياتي ...
الرد
#3
(15-10-18, 07:32 PM)عبدالله الدوسري كتب : وعليكم السلام ورحمة الله وبركاتة 



كود :
 Dim HasAnyCheck As Boolean = False
       ' لتسريع العملية تم إخراج إنشاء الأمر وفتح الإتصال خارج الإلتفاف
       ' SQLiteCommand لا تحتاج في كل مرة تعريف جملة الإستعلام لكائن
       ' هي مرة واحد في حياتة كلها
       cmdxa = New SQLiteCommand("INSERT INTO db (omcall ,qso_date ,timeutc ,bands ,modes ,rst_sent,rst_rcvd) Values (@omcall ,@qso_date ,@timeutc ,@bands ,@modes ,@rst_sent,@rst_rcvd)") With {
               .Connection = conxa
               }
       conxa.Open() ' الأفضل فتح الإتصال مرة واحدة فقط وليس في كل لفة

       For r As Integer = 0 To DataGridView2.Rows.Count - 1
           Dim check As Boolean = CType(DataGridView2.Rows(r).Cells(0).Value, Boolean)

           If check = True Then
               HasAnyCheck = True
               itm2 = DataGridView2.Rows(r).Cells(2).Value
               itm3 = DataGridView2.Rows(r).Cells(3).Value
               itm4 = DataGridView2.Rows(r).Cells(4).Value
               itm5 = DataGridView2.Rows(r).Cells(5).Value
               itm6 = DataGridView2.Rows(r).Cells(6).Value
               itm7 = DataGridView2.Rows(r).Cells(7).Value
               itm8 = DataGridView2.Rows(r).Cells(8).Value



               cmdxa.Parameters.Clear()
               cmdxa.Parameters.AddWithValue("@omcall", itm2.Trim())
               cmdxa.Parameters.AddWithValue("@qso_date", itm3.Trim())
               cmdxa.Parameters.AddWithValue("@timeutc", Trim(Convert.ToString(itm4)))
               cmdxa.Parameters.AddWithValue("@bands", itm5.Trim())
               cmdxa.Parameters.AddWithValue("@modes", itm6.Trim())
               cmdxa.Parameters.AddWithValue("@rst_sent", itm7.Trim())
               cmdxa.Parameters.AddWithValue("@rst_rcvd", itm8.Trim())

               cmdxa.ExecuteNonQuery()

               Application.DoEvents()

           End If
       Next

       conxa.Close() ' بعد الإنتهاء إغلاق الإتصال

       If Not HasAnyCheck Then
           MessageBox.Show("Not Checked")
       End If
تحياتي ...

احسنت استاذي تعبت من البحث والتجارب ههههه

شكرا لك دائما نساعد ربي يوفقك وييسر امرك يا رب Rolleyes
الرد
تم الشكر بواسطة: Amir_Alzubidy
#4
(15-10-18, 07:58 PM)dubai.eig كتب : احسنت استاذي تعبت من البحث والتجارب ههههه

شكرا لك دائما نساعد ربي يوفقك وييسر امرك يا رب Rolleyes


العفوا أخي  dubai.eig  ( شكراً على الدعوة الطيبة , بارك الله فيك )

أي عضو يضع سؤال واضح ومتبوع بالكود والصور والمحاولة التي قام بها .

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


لأنه وبكل بساطة هكذا تطرح الأسئلة النموذجية .

أتمنى من البعض ( Dodgy ) أن يطرحوا الأسئلة بنفس هذا الإسلوب.

تحياتي لك . وتستاهل +1 
الرد
تم الشكر بواسطة: dubai.eig , dubai.eig , Amir_Alzubidy , mr_hso , moosa_alabri
#5
استاذ عبد الله الدوسري
دائما متالق ماشاء الله عليك
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سألت سؤال ومحد رد علي هذا السؤال الثاني بخصوص التقارير saud4001 4 250 06-03-21, 03:39 PM
آخر رد: saud4001
  تشغيل برنامج بالفجول بيسك عن طريق شبكة الواي فاي معتز حسن 0 101 03-03-21, 02:30 AM
آخر رد: معتز حسن
Sad [سؤال] تصفية ComboBox داخل datagridview سعيد كنيمو 2 137 01-03-21, 11:10 PM
آخر رد: سعيد كنيمو
  [VB.NET] استفسار بخصوص المسج اللي يطلع Output dubai.eig 5 985 26-02-21, 10:47 PM
آخر رد: علي المروعي
  استفسار sokina 2 145 25-02-21, 09:17 PM
آخر رد: sokina
Sad [سؤال] بخصوص اقفال السنة المالية و فتح سنة جديدة sql سعيد كنيمو 5 234 24-02-21, 10:27 PM
آخر رد: سعيد كنيمو
  [VB.NET] عمل بلوك للبورتات في الجدار الناري عن طريق الفجول بيسك [ netsh advfirewall firewall Vimtos 0 110 21-02-21, 03:35 PM
آخر رد: Vimtos
  استفسار ضروري sokina 0 101 21-02-21, 12:51 AM
آخر رد: sokina
  حساب الفرق بين وقتين من خلال الداتا قريد aftfm 6 259 20-02-21, 04:50 PM
آخر رد: أبو عبدالله الحلواني
  مشكلة عند تصدير الداتا قريد إلى الاكسل يظهر الوقت مع التاريخ ؟ أبووسم 3 211 19-02-21, 08:53 PM
آخر رد: أبووسم

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


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