السلام عليكم،
وصف البرنامج :
عند اختيار اسم معين من combobox فإن بيانات التقرير المتعلق بهذا الاسم سيظهر في ال datagrid .
طريقة العمل :
يتم تكوين ال select command في اثناء عمل البرنامج و تخزين النتيجة في dataset اسمها reports1
المقطع المهم من الكود :
If OleDbConnection1.State = ConnectionState.Closed Then OleDbConnection1.Open() Me.OleDbDataAdapter4.SelectCommand.CommandText = " SELECT actiontaken, comments, desciption, employeeID, recordedby, refencedate, refrence, reportdate, reporttype FROM report" _ & " where employeeid='" & ComboBox2.SelectedValue & "'" Me.Reports1.Clear() Try Me.OleDbDataAdapter4.Fill(Reports1) Catch efill As System.Exception MessageBox.Show(efill.Message) Throw efill End Try OleDbConnection1.Close() end if
المشكلة :
لاحظت اني في كل مرة اختار اسم مختلف فإن نتيجة ال select تضاف الى النتائج السابقة المعروضة في الdatagrid
قلت ربما يجب أن اعمل على مسح النتائج القديمة من الديتاست قبل الملأ بنتائج جديدة
فأضفت reports1.clear
أصبحت لا تظهر نتائج بالمرة في الديتاقريد
أضفت سطر جديد بعد سطر Me.OleDbDataAdapter4.Fill(Reports1)
وهو القيام باعادة تحديد الديتاسورس للديتاقريد
datagrid1.datasource=reports1.report
فأصبح يعمل !
المطلوب :
هل توجد طريقة أفضل للوصول الى النتيجة المطلوبة وهي التخلص من النتائج القديمة في كل مرة
وهل تعمل clear على محو الارتباطات ؟!
تحياتي لكم.