تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مساعدة في حل اخطاء الحفظ
#1
Private Sub BtnSave_Click(sender As Object, e As EventArgs) Handles BtnSave.Click
        Dim ssd As String = GetAutoIncrement("affaires", "id_aff")
        TextBox2.Text = ssd
        If CmbType.Text = "" Then
            MessageBox.Show("ادخل نوع القضية", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            CmbType.Focus()
            Return
        End If
        If CmbNature.Text = "" Then
            MessageBox.Show("ادخل طبيعة القضية", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            CmbNature.Focus()
            Return
        End If
        If MaskedTextBox1.Text = "" Then
            MessageBox.Show("ادخل تاريخ الايداع", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            MaskedTextBox1.Focus()
            Return
        End If
        Try
            Connect()
            con.Open()
            Dim cb As String = "insert into affaires ([id_aff],[id_user],[type_aff],[nature_aff],[date_depot],[date_convoquer],[date_realiser],[payer],[avance],[reglement],[observation]) VALUES (@d1,@d2,@d3,@d4,@d5,@d6,@d7,@d8,@d9,@d10,@d11)"
            cmd = New SqlCommand(cb)
            cmd.Connection = con
            cmd.Parameters.AddWithValue("@d1", TextBox2.Text).ToString()
            cmd.Parameters.AddWithValue("@d2", Label13.Text).ToString()
            cmd.Parameters.AddWithValue("@d3", CmbType.Text).ToString()
            cmd.Parameters.AddWithValue("@d4", CmbNature.Text).ToString()
            cmd.Parameters.AddWithValue("@d5", MaskedTextBox1.Text).ToString()
            cmd.Parameters.AddWithValue("@d6", MaskedTextBox2.Text).ToString()
            cmd.Parameters.AddWithValue("@d7", MaskedTextBox3.Text).ToString()
            cmd.Parameters.AddWithValue("@d8", TextBox3.Text).ToString()
            cmd.Parameters.AddWithValue("@d9", TextBox4.Text).ToString()
            cmd.Parameters.AddWithValue("@d10", TextBox5.Text).ToString()
            cmd.Parameters.AddWithValue("@d11", TextBox1.Text).ToString()
            cmd.ExecuteNonQuery()
            con.Close()
            MessageBox.Show("تمت عملية الحفظ بنجاح", "tiers", MessageBoxButtons.OK, MessageBoxIcon.Information)
            BtnDelete.Enabled = False
            BtnUpdate.Enabled = False
            reset()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
        End Try
    End Sub
يظهر الخطا الموضح في الصورة 1


وعند الضغط مرة اخرى على زر تسجيل يظهر صورة 2


الملفات المرفقة صورة/صور
       
الرد
تم الشكر بواسطة:
#2
(03-02-20, 06:44 AM)tahaayyoub كتب : Private Sub BtnSave_Click(sender As Object, e As EventArgs) Handles BtnSave.Click
        Dim ssd As String = GetAutoIncrement("affaires", "id_aff")
        TextBox2.Text = ssd
        If CmbType.Text = "" Then
            MessageBox.Show("ادخل نوع القضية", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            CmbType.Focus()
            Return
        End If
        If CmbNature.Text = "" Then
            MessageBox.Show("ادخل طبيعة القضية", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            CmbNature.Focus()
            Return
        End If
        If MaskedTextBox1.Text = "" Then
            MessageBox.Show("ادخل تاريخ الايداع", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            MaskedTextBox1.Focus()
            Return
        End If
        Try
            Connect()
            con.Open()
            Dim cb As String = "insert into affaires ([id_aff],[id_user],[type_aff],[nature_aff],[date_depot],[date_convoquer],[date_realiser],[payer],[avance],[reglement],[observation]) VALUES (@d1,@d2,@d3,@d4,@d5,@d6,@d7,@d8,@d9,@d10,@d11)"
            cmd = New SqlCommand(cb)
            cmd.Connection = con
            cmd.Parameters.AddWithValue("@d1", TextBox2.Text).ToString()
            cmd.Parameters.AddWithValue("@d2", Label13.Text).ToString()
            cmd.Parameters.AddWithValue("@d3", CmbType.Text).ToString()
            cmd.Parameters.AddWithValue("@d4", CmbNature.Text).ToString()
            cmd.Parameters.AddWithValue("@d5", MaskedTextBox1.Text).ToString()
            cmd.Parameters.AddWithValue("@d6", MaskedTextBox2.Text).ToString()
            cmd.Parameters.AddWithValue("@d7", MaskedTextBox3.Text).ToString()
            cmd.Parameters.AddWithValue("@d8", TextBox3.Text).ToString()
            cmd.Parameters.AddWithValue("@d9", TextBox4.Text).ToString()
            cmd.Parameters.AddWithValue("@d10", TextBox5.Text).ToString()
            cmd.Parameters.AddWithValue("@d11", TextBox1.Text).ToString()
            cmd.ExecuteNonQuery()
            con.Close()
            MessageBox.Show("تمت عملية الحفظ بنجاح", "tiers", MessageBoxButtons.OK, MessageBoxIcon.Information)
            BtnDelete.Enabled = False
            BtnUpdate.Enabled = False
            reset()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
        End Try
    End Sub
يظهر الخطا الموضح في الصورة 1


وعند الضغط مرة اخرى على زر تسجيل يظهر صورة 2

السلام عليكم ورحمة الله وبركاته 
أولا.  المهم هو الكود الذي تحت  connect() و  reset() .
قد يكون كل ما تضغط على الزر يغير نص الاتصال في connect().
 ويفضل اضافة   con.close() بعد ظهور رسالة الاستناء.

تمنياتي لك وللجميع التوفيق
الرد
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو , egypt 2020 , egypt 2020
#3
استبدل :
كود :
con.open()
بـ :

كود :
If con.State = ConnectionState.Closed Then con.Open()
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر




الرد
تم الشكر بواسطة: ابراهيم ايبو , egypt 2020 , egypt 2020 , baha
#4
(03-02-20, 10:53 AM)asemshahen5 كتب : استبدل :
كود :
con.open()
بـ :

كود :
If con.State = ConnectionState.Closed Then con.Open()

علي ما اعتقد استاذ asemshahen5 الموضوع مش جملة اتصال .

المشكلة عندة في حفظ التاريخ وتقريبا كدة بيستخدم تيكست لحفظ التاريخ بدل من اداة التاريخ  .

1- استخدم اداة التاريخ DateTimePicker1

2- خلي الخاصية FORMATE = SHORT

3- اتاكد من حقل التاريخ بقاعدة البيانات او خلية تاريخ وخلي الخاصية الخاصة بية  Short Date

4-وعدل بارميتر الخاص بحقل التاريخ

5- ضع البارميتر التالي في حقل التاريخ وفقا لاسم الحقل لديك.

6- طبعا تقدر تستخدم التيكست بس مش صح الطريقة دية هتحتاج تعمل CONVERT وملوش داعي هنا .

كود :
  com.Parameters.AddWithValue("@employee_date", DateTimePicker1.Value.ToShortDateString)
اما لو تيكست وعايز تحفظها بوضعها كتيكست لو انا فاهم صح .


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

كود :
 Convert.ToDateTime(MaskedTextBox1.Text).ToShortDateString
الرد
تم الشكر بواسطة: asemshahen5 , baha
#5
(03-02-20, 02:20 PM)egypt 2020 كتب :
(03-02-20, 10:53 AM)asemshahen5 كتب : استبدل :
كود :
con.open()
بـ :

كود :
If con.State = ConnectionState.Closed Then con.Open()

علي ما اعتقد استاذ asemshahen5 الموضوع مش جملة اتصال .

المشكلة عندة في حفظ التاريخ وتقريبا كدة بيستخدم تيكست لحفظ التاريخ بدل من اداة التاريخ  .

1- استخدم اداة التاريخ DateTimePicker1

2- خلي الخاصية FORMATE = SHORT

3- اتاكد من حقل التاريخ بقاعدة البيانات او خلية تاريخ وخلي الخاصية الخاصة بية  Short Date

4-وعدل بارميتر الخاص بحقل التاريخ

5- ضع البارميتر التالي في حقل التاريخ وفقا لاسم الحقل لديك.

6- طبعا تقدر تستخدم التيكست بس مش صح الطريقة دية هتحتاج تعمل CONVERT وملوش داعي هنا .

كود :
  com.Parameters.AddWithValue("@employee_date", DateTimePicker1.Value.ToShortDateString)
اما لو تيكست وعايز تحفظها بوضعها كتيكست لو انا فاهم صح .


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

كود :
 Convert.ToDateTime(MaskedTextBox1.Text).ToShortDateString

وعند الضغط مرة اخرى على زر تسجيل يظهر صورة 2 بالنسبة لما سبق فما قلته انت عن الخطأ الاول صحيح اما بالنسبة للخطأ الثاني فكتبت حله في مشاركتي و لك مني جزيل الشكر و التقييم .
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر




الرد
تم الشكر بواسطة: egypt 2020
#6
(03-02-20, 02:35 PM)asemshahen5 كتب :
(03-02-20, 02:20 PM)egypt 2020 كتب :
(03-02-20, 10:53 AM)asemshahen5 كتب : استبدل :
كود :
con.open()
بـ :

كود :
If con.State = ConnectionState.Closed Then con.Open()

علي ما اعتقد استاذ asemshahen5 الموضوع مش جملة اتصال .

المشكلة عندة في حفظ التاريخ وتقريبا كدة بيستخدم تيكست لحفظ التاريخ بدل من اداة التاريخ  .

1- استخدم اداة التاريخ DateTimePicker1

2- خلي الخاصية FORMATE = SHORT

3- اتاكد من حقل التاريخ بقاعدة البيانات او خلية تاريخ وخلي الخاصية الخاصة بية  Short Date

4-وعدل بارميتر الخاص بحقل التاريخ

5- ضع البارميتر التالي في حقل التاريخ وفقا لاسم الحقل لديك.

6- طبعا تقدر تستخدم التيكست بس مش صح الطريقة دية هتحتاج تعمل CONVERT وملوش داعي هنا .

كود :
  com.Parameters.AddWithValue("@employee_date", DateTimePicker1.Value.ToShortDateString)
اما لو تيكست وعايز تحفظها بوضعها كتيكست لو انا فاهم صح .


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

كود :
 Convert.ToDateTime(MaskedTextBox1.Text).ToShortDateString

وعند الضغط مرة اخرى على زر تسجيل يظهر صورة 2 بالنسبة لما سبق فما قلته انت عن الخطأ الاول صحيح اما بالنسبة للخطأ الثاني فكتبت حله في مشاركتي و لك مني جزيل الشكر و اللقييم .

ولك كل الشكرا ايضا  |استاذ  asemshahen5

ممكن مع الخطا الاتصال يفضل مفتوح وخصوصا انك لو لاحظت انة في تصيد الخطا لم يغلق الاتصال .

ارجو تقبل مروري |استاذ asemshahen5 .
الرد
تم الشكر بواسطة: asemshahen5 , baha
#7
بارك الله فيك انت تقبل مروري و جزاك الله عنا كل خير .
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر




الرد
تم الشكر بواسطة: egypt 2020 , egypt 2020 , baha
#8
(03-02-20, 02:45 PM)asemshahen5 كتب : بارك الله فيك انت تقبل مروري و جزاك الله عنا كل خير .


اسأل الله ان يرزقك من فضلة .

ويرزق الجميع كل الخير .
الرد
تم الشكر بواسطة: asemshahen5 , baha
#9
(03-02-20, 06:44 AM)tahaayyoub كتب : Private Sub BtnSave_Click(sender As Object, e As EventArgs) Handles BtnSave.Click
        Dim ssd As String = GetAutoIncrement("affaires", "id_aff")
        TextBox2.Text = ssd
        If CmbType.Text = "" Then
            MessageBox.Show("ادخل نوع القضية", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            CmbType.Focus()
            Return
        End If
        If CmbNature.Text = "" Then
            MessageBox.Show("ادخل طبيعة القضية", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            CmbNature.Focus()
            Return
        End If
        If MaskedTextBox1.Text = "" Then
            MessageBox.Show("ادخل تاريخ الايداع", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            MaskedTextBox1.Focus()
            Return
        End If
        Try
            Connect()
            con.Open()
            Dim cb As String = "insert into affaires ([id_aff],[id_user],[type_aff],[nature_aff],[date_depot],[date_convoquer],[date_realiser],[payer],[avance],[reglement],[observation]) VALUES (@d1,@d2,@d3,@d4,@d5,@d6,@d7,@d8,@d9,@d10,@d11)"
            cmd = New SqlCommand(cb)
            cmd.Connection = con
            cmd.Parameters.AddWithValue("@d1", TextBox2.Text).ToString()
            cmd.Parameters.AddWithValue("@d2", Label13.Text).ToString()
            cmd.Parameters.AddWithValue("@d3", CmbType.Text).ToString()
            cmd.Parameters.AddWithValue("@d4", CmbNature.Text).ToString()
            cmd.Parameters.AddWithValue("@d5", MaskedTextBox1.Text).ToString()
            cmd.Parameters.AddWithValue("@d6", MaskedTextBox2.Text).ToString()
            cmd.Parameters.AddWithValue("@d7", MaskedTextBox3.Text).ToString()
            cmd.Parameters.AddWithValue("@d8", TextBox3.Text).ToString()
            cmd.Parameters.AddWithValue("@d9", TextBox4.Text).ToString()
            cmd.Parameters.AddWithValue("@d10", TextBox5.Text).ToString()
            cmd.Parameters.AddWithValue("@d11", TextBox1.Text).ToString()
            cmd.ExecuteNonQuery()
            con.Close()
            MessageBox.Show("تمت عملية الحفظ بنجاح", "tiers", MessageBoxButtons.OK, MessageBoxIcon.Information)
            BtnDelete.Enabled = False
            BtnUpdate.Enabled = False
            reset()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
        End Try
    End Sub
يظهر الخطا الموضح في الصورة 1


وعند الضغط مرة اخرى على زر تسجيل يظهر صورة 2




الاخ asemshahen5 ذكر ان تستخدم اداة DateTimePicker وهذا جيد
ولكن يعب هذه الاداه لو تم الضغط على زر الحفظ سياخذ التاريخ الموجود حتى ولو نسيت ان تغيره.

الطريقة الافضل للتواريخ المهمة هي كما فعلتها انت باستخدم MaskedTextBox
ولكنك نسيت أن تضع لMaskedTextBox2 وMaskedTextBox3 شرط تحقق كما فعلت لMaskedTextBox1


الخطا في الصورة الاولى انك لم تكتب التاريخ الخاص ب(تاريخ الانجاز) كما يضهر في الصورة


الخطا الثاني شرحوا حله الاخوه قبلي
الرد
تم الشكر بواسطة: baha , baha , asemshahen5



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


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