السلام عليكم ورحمة الله وبركاته
لدي برنامج عبارة عن إضافة دورات أو برامج (باستخدام باستخدام vb.net 2003 وقاعدة بيانات أكسس) وحفظها والتعديل عليها وحذفها
وكذلك الاستعلام عنها
المشكلة التي واجهتني هي عند إضافة برنامج جديد وإضافة أسماء المكلفين إذا كان مكلفين اثنين للبرنامج الواحد
وكان أحد المكلفين جديد لم يسبق إضافته والآخر سبق إضافته فإنه يضيف فقط أحدهما والآخر يحذفه
Private Sub Button_save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_save.Click
Try
If con.State <> ConnectionState.Open Then
con.Open()
End If
Dim dgcount As Integer = DataGrid1.BindingContext(DataGrid1.DataSource, DataGrid1.DataMember).Count
Dim i As Integer
For i = 0 To dgcount - 1
com_select_emp_id.Parameters("emp_id").Value = DataGrid1.Item(i, 0)
If com_select_emp_id.ExecuteScalar <> DataGrid1.Item(i, 0) Then
MessageBox.Show("غير موجود")
OleDbInsertCommand2.Parameters("e7tiajat").Value = TextBox_ahtyajat.Text
OleDbInsertCommand2.Parameters("from_dateg_d").Value = ComboBox_d_d_from.SelectedItem
OleDbInsertCommand2.Parameters("from_dateg_m").Value = ComboBox_d_m_from.SelectedItem
OleDbInsertCommand2.Parameters("from_dateg_y").Value = ComboBox_y_from.SelectedItem
OleDbInsertCommand2.Parameters("from_datehej_d").Value = ComboBox_h_d_from.SelectedItem
OleDbInsertCommand2.Parameters("from_datehej_m").Value = ComboBox_h_m_from.SelectedItem
OleDbInsertCommand2.Parameters("from_datehej_y").Value = ComboBox_h_y_from.SelectedItem
OleDbInsertCommand2.Parameters("note").Value = TextBox_molahdat.Text
'[note]
OleDbInsertCommand2.Parameters("pro_name").Value = ComboBox_prp.Text
OleDbInsertCommand2.Parameters("to_dateg_d").Value = ComboBox_d_d_to.SelectedItem
OleDbInsertCommand2.Parameters("to_dateg_m").Value = ComboBox_d_m_to.SelectedItem
OleDbInsertCommand2.Parameters("to_dateg_y").Value = ComboBox_d_y_to.SelectedItem
OleDbInsertCommand2.Parameters("to_datehej_d").Value = ComboBox_h_d_to.SelectedItem
OleDbInsertCommand2.Parameters("to_datehej_m").Value = ComboBox_h_m_to.SelectedItem
OleDbInsertCommand2.Parameters("to_datehej_y").Value = ComboBox_h_y_to.SelectedItem
OleDbInsertCommand2.Parameters("vinerycat").Value = TextBox_vi.Text
If RadioButton_nofed.Checked = True Then
OleDbInsertCommand2.Parameters("execution").Value = "نفذ"
Else
OleDbInsertCommand2.Parameters("execution").Value = "لم ينفذ"
End If
Dim i1 As Integer
Dim dgcount1 As Integer = DataGrid1.BindingContext(DataGrid1.DataSource, DataGrid1.DataMember).Count
For i1 = 0 To dgcount - 1
OleDbInsertCommand2.Parameters("emp_id").Value = DataGrid1.Item(i1, 0)
OleDbInsertCommand2.Parameters("ID").Value = DataGrid1.Item(i1, 0)
OleDbInsertCommand2.Parameters("emp_name1").Value = DataGrid1.Item(i1, 1)
OleDbInsertCommand2.Parameters("emp_name2").Value = DataGrid1.Item(i1, 2)
OleDbInsertCommand2.Parameters("emp_name3").Value = DataGrid1.Item(i1, 3)
OleDbInsertCommand2.Parameters("emp_name4").Value = DataGrid1.Item(i1, 4)
'com_insert_prog.Parameters("emp_id").Value = DataGrid1.Item(i, 0)
' تنفيذ الادراج
' com_insert_emp.ExecuteNonQuery()
OleDbInsertCommand2.ExecuteNonQuery()
Next
for_refresh()
Else 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
MessageBox.Show(" موجود")
com_select_pro.Parameters("pro_name").Value = ComboBox_prp.Text
If com_select_pro.ExecuteScalar <> ComboBox_prp.Text Then ' اذا الحمله او البرنامج غير موجود اعمل التالي
com.Parameters("e7tiajat").Value = TextBox_ahtyajat.Text
com.Parameters("from_dateg_d").Value = ComboBox_d_d_from.SelectedItem
com.Parameters("from_dateg_m").Value = ComboBox_d_m_from.SelectedItem
com.Parameters("from_dateg_y").Value = ComboBox_y_from.SelectedItem
com.Parameters("from_datehej_d").Value = ComboBox_h_d_from.SelectedItem
com.Parameters("from_datehej_m").Value = ComboBox_h_m_from.SelectedItem
com.Parameters("from_datehej_y").Value = ComboBox_h_y_from.SelectedItem
com.Parameters("note").Value = TextBox_molahdat.Text
com.Parameters("pro_name").Value = ComboBox_prp.Text
com.Parameters("to_dateg_d").Value = ComboBox_d_d_to.SelectedItem
com.Parameters("to_dateg_m").Value = ComboBox_d_m_to.SelectedItem
com.Parameters("to_dateg_y").Value = ComboBox_d_y_to.SelectedItem
com.Parameters("to_datehej_d").Value = ComboBox_h_d_to.SelectedItem
com.Parameters("to_datehej_m").Value = ComboBox_h_m_to.SelectedItem
com.Parameters("to_datehej_y").Value = ComboBox_h_y_to.SelectedItem
com.Parameters("vinerycat").Value = TextBox_vi.Text
If RadioButton_nofed.Checked = True Then
com.Parameters("execution").Value = "نفذ"
Else
com.Parameters("execution").Value = "لم ينفذ"
End If
Dim i2 As Integer
Dim dgcount2 As Integer = DataGrid1.BindingContext(DataGrid1.DataSource, DataGrid1.DataMember).Count
' Dim i As Integer
For i2 = 0 To dgcount - 1
com.Parameters("ID").Value = DataGrid1.Item(i2, 0)
com.ExecuteNonQuery()
Next
'Else
' MsgBox("الحمله موجوده مسبقا لايمكنك الادخال")
End If
for_refresh()
End If
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
If con.State <> ConnectionState.Closed Then
con.Close()
End If
End Subوكذلك لا يتم أظهار البرنامج المضاف في الكمبوبوكس الخاص بالبرنامج في نفس الجلسة (اللتي أضاف أحدهما) بل لابد من الخروج من البرنامج وفتحه مرة أخرى
مع العلم أنه عند التعديل على برنامج بأسماء المكلفين لا يوجد أي مشكلة
كذلك في فورم الاستعلام يكرر اسماء المكلفين في الكمبوبوكس الخاص بالمكلفين على عدد البرامج المكلفين بها وأنا أريد أن يظهر الأسماء بدون تكرار.
آمل في إيجاد حل
شاكر لكم