الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في زر حفظ

بدأه assdd في 4 يونيو 2011 · 13 رد · 752 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدي برنامج عبارة عن إضافة دورات أو برامج (باستخدام باستخدام 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

وكذلك لا يتم أظهار البرنامج المضاف في الكمبوبوكس الخاص بالبرنامج في نفس الجلسة (اللتي أضاف أحدهما) بل لابد من الخروج من البرنامج وفتحه مرة أخرى

مع العلم أنه عند التعديل على برنامج بأسماء المكلفين لا يوجد أي مشكلة

كذلك في فورم الاستعلام يكرر اسماء المكلفين في الكمبوبوكس الخاص بالمكلفين على عدد البرامج المكلفين بها وأنا أريد أن يظهر الأسماء بدون تكرار.

آمل في إيجاد حل

شاكر لكم

#2

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

اخي اذا كان هناك علاقه بين المكلف والبرنامج فلابد ان يكون مضاف مسبقا فاعمل زر لاضافه مكلف جديد اذا لم يكن موجود وبعدها يستم اضافة اي عدد من المكلفين, اما لإظهار البرنامج المضاف فبعد عملية الحفظ السابقه قم بجلب البرامج مرة اخرى للقائمه المنسدله .. اما بالنسبه لمشكله التكرار فحاول ستخدم الامر Select Distinct لجلب السجلت بدون تكرار

.:: Wish to become better and better ::.

#3

شكراً أستاذ/VB Helper على تكرمك بالرد لكن ليس هذا ما قصدته

هل بالأمكان أن أرسل لك البرنامج على الايميل لتطلع عليه؟

آمل التكرم بإعطائي الايميل

شاكر لك

#4

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

اخي يمكنك ارفاقه هنا ..

.:: Wish to become better and better ::.

#6

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

اخي الرابط ما يرضى يقل العداد؟!! يرجى ارفاقه في الموقع ..

.:: Wish to become better and better ::.

#7

السلام عليكم

تفضل أخي

الملف في المرفقات

شكراً لك

New Folder.zip

#8

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

اخي المرفق لم يكن حتى فورم كامل .. الرجاء ارفاق الفورم مع قاعدة البيانات ..

.:: Wish to become better and better ::.

#9

السلام عليكم

أخي بارك الله فيك حجم الملف أكبر من 600كيلو

آمل أن يفتح معك الرابط التالي

http://filaty.com/s/vkN

وشكراً

#10

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

اخي طبعا كودك يحتاج تحسين كثييير, المهم جرب هذا الكود للحفظ


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

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(i, 0)
OleDbInsertCommand2.Parameters("ID").Value = DataGrid1.Item(i, 0)
OleDbInsertCommand2.Parameters("emp_name1").Value = DataGrid1.Item(i, 1)
OleDbInsertCommand2.Parameters("emp_name2").Value = DataGrid1.Item(i, 2)
OleDbInsertCommand2.Parameters("emp_name3").Value = DataGrid1.Item(i, 3)
OleDbInsertCommand2.Parameters("emp_name4").Value = DataGrid1.Item(i, 4)




OleDbInsertCommand2.ExecuteNonQuery()
' Next

' for_refresh()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Else 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


MessageBox.Show(" موجود")


com_select_pro.Parameters("pro_name").Value = ComboBox_prp.Text

' If com_select_pro.ExecuteScalar <> ComboBox_prp.Text Then ' اذا الحمله او البرنامج غير موجود اعمل التالي
com.Parameters("ID").Value = DataGrid1.Item(i, 0)
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
'[note]
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(i, 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

.:: Wish to become better and better ::.

#11

السلام عليكم

شكراً لك أستاذ/VB Helper

ضبط كود الحفظ ما عدا أنه لا يضيف البرنامج الجديد في الكمبوبوكس حال حفظه بل لابد من إنهاء البرنامج وفتحه مرة أخرى

وأيضا هناك مشكلة في زر التعديل حيث أنه عند إضافة مكلف آخر للمكلف الأول أو حذف أحد المكلفين فإنه لا يتم التعديل وأنما يكرر السجلات الموجودة في الداتا قريد وكذلك عند وضع المؤشر في عمود الرقم لإضافة مكلف في الداتا قريد يفرغ التكست بوكس

شاكر لكم

#12

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

اخي يمكنك اظها البرنامج المضاف في القائمه, فقط قم بجلب البيانات مره اخرى عند نقر زر الحفظ

.:: Wish to become better and better ::.

#13

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

شكراً أستاذ/VB Helper على إجاباتك المفيدة

ماذا عن مشكلة التعديل؟

#14

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

اخي بالنسبه للتعديل يمكنك عمل دوران على المكلفين الموجودين في اداة ال DataGridView وقم بتحديث بياناتهم كل واحد على حده باستخدام امر ال Update

.:: Wish to become better and better ::.

مواضيع مشابهة