منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ظهور خطا عند سحب البيانات وعرضها في الداتا كريد باستخدم الـــ Threading
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
بسم الله الرحمن الرحيم

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

اخواني اعضاء المنتدى تحياتي لكم جميعاً

عندما اقوم بسحب البيانات من الداتا بيس (sql server 2008) وعرضها في الداتا كريد باستخدام الــ Threading
اول عمليه يتم عرض البيانات بدون اي خطا ولكن بعد ثاني عمليه يظهر الخطا , ورسالة الخطا ادناه

                                                          .System.IndexOutOfRangeException: Index 0 does not have a value
                                                         (at System.Windows.Forms.CurrencyManager.get_Item(Int32 index
  (at System.Windows.Forms.DataGridView.DataGridViewDataConnection.GetError(Int32 rowIndex

وهذه الاكواد التي استخدمتها
هذه دالة عرض البيانات

                                                        ()Private Sub GetData1
                                                                                        Try
       If cs1.State = ConnectionState.Closed Then
                                                             () cs1.Open
                                                                           End If
                                                                  ()ds1.Clear
                                      ("da1.Fill(ds1, "tablename
                                                                  ()cs1.Close
                                                                                   Catch
  ("تنبيه", MsgBoxStyle.OkOnly, "يوجد خطا")MsgBox
                                                                                End Try
("Me.dg1.DataSource = ds1.Tables("tablename  
                                                                                    End Sub

وفي الحدث لود
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                                                                                                                     CheckForIllegalCrossThreadCalls = False
                                                                                                                                                                                            End Sub

وهنا يتم تنفيذ الدالة
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
                                                                      (thread1 = New System.Threading.Thread(AddressOf GetData1
                                                                                                                                                              ()thread1.Start
                                                                                                                                                                                            End Sub

عندما يتم تنفيذ اول عملية تمام يتم سحب البيانات ولكن بعد العملية الثانية او الثالثة تبدأ رسالة الخطا بلظهور اعلاه
مع العلم انه اذا حذفت هذا الكود  ("Me.dg1.DataSource = ds1.Tables("tablename
الموجود في الدالة يتم تنفيذ الكود بدون اخطاء ما سبب ظهور هذه الرسالة ارجو المساعده وشكراُ لكم