تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] طلب مساعدة بخصوص حفظ الداتا جريد فيو بها تشيكبوكس
#1
عندي داتا جريد فيو بها عمود تشيك بوكس
عند الاختيار اريد من الكود أن يحفظ البيانات الموجودة لتي تم اختيارها
قاعدة البيانات أكسس
وجربت هذا الكود
كود :
        If con.State = ConnectionState.Open Then
            con.Close()
        End If
        If TXT_ID_ABS.Text = "" Or DGV_NAM.Rows.Count = 0 Then
            MsgBox("Cant save incomplete information", MsgBoxStyle.Critical, Me.Text)
            Exit Sub
        End If
       Dim inserted As Integer = 0
       For Each row As DataGridViewRow In DGV_NAM.Rows
           Dim isChecked As Boolean = Convert.ToBoolean(row.Cells("WARN").Value)
           If isChecked Then
               Dim SA As String
               Dim CMD As New OleDbCommand(SA, con)
               SA = "INSERT INTO ABSE_TBL VALUES(@ID_ABS, @ABS_DAT, @STU_ID,@STU_NAM,@CLS,@GRAD)"
               CMD.Parameters.AddWithValue("ID_ABS", TXT_ID_ABS.Text)
               CMD.Parameters.AddWithValue("ABS_DAT", ABSE_DAT.Text)
               CMD.Parameters.AddWithValue("@STU_ID", row.Cells("ST_Id").Value)
               CMD.Parameters.AddWithValue("@STU_NAM", row.Cells("ST_Nam").Value)
               CMD.Parameters.AddWithValue("CLS", cls_lst.Text)
               CMD.Parameters.AddWithValue("GRAD", grad_lst.Text)
               'CMD.Parameters.AddWithValue("@STU_ID", row.Cells("WARN").Value)
               con.Open()
               CMD.ExecuteNonQuery()
               con.Close()
           End If
       Next
       MessageBox.Show("تم حفظ سجل الغياب بنجاح")
   End Sub
الرد
تم الشكر بواسطة:
#2
السلام عليكم اخي الكريم
طبعا يجب ان يكون الحقل في الجدول بقاعدة البيانات من نوغ Yes/no  اي Boolean
وهذا المثال بالوضع المنفصل فيه جملة الحفظ عبارة عن صب وفي زر الحفظ نستدعي هذا الصب وفق الباراميترات
المطلوبة تمعن الكود جيدا ثم انحو نحوه وفق الحقول التي لديك وغير الاسماء ايضا
ارجو ان اكون قد افدتك


الملفات المرفقة
.rar   Asheq1.rar (الحجم : 79.87 ك ب / التحميلات : 17)
الرد
#3
(15-08-19, 03:44 PM)ابراهيم ايبو كتب : السلام عليكم اخي الكريم
طبعا يجب ان يكون الحقل في الجدول بقاعدة البيانات من نوغ Yes/no  اي Boolean
وهذا المثال بالوضع المنفصل فيه جملة الحفظ عبارة عن صب وفي زر الحفظ نستدعي هذا الصب وفق الباراميترات
المطلوبة تمعن الكود جيدا ثم انحو نحوه وفق الحقول التي لديك وغير الاسماء ايضا
ارجو ان اكون قد افدتك

جزاك الله خير على سرعة الرد وسوف أجرب 
وأشكرك مرة ثانية على التجاوب السريع
الرد
تم الشكر بواسطة: asemshahen5
#4
(16-08-19, 01:16 AM)عاشق الرسول كتب :
(15-08-19, 03:44 PM)ابراهيم ايبو كتب : السلام عليكم اخي الكريم
طبعا يجب ان يكون الحقل في الجدول بقاعدة البيانات من نوغ Yes/no  اي Boolean
وهذا المثال بالوضع المنفصل فيه جملة الحفظ عبارة عن صب وفي زر الحفظ نستدعي هذا الصب وفق الباراميترات
المطلوبة تمعن الكود جيدا ثم انحو نحوه وفق الحقول التي لديك وغير الاسماء ايضا
ارجو ان اكون قد افدتك

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


الملفات المرفقة صورة/صور
   
الرد
تم الشكر بواسطة:
#5
السلام عليكم اخي الكريم
انت تحتاج الى كود حفظ  من الداتا غرايد بادخال عدة سجلات دفعة واحدة
 اذا لم تكن البيانات مخزنة سابقا 
Save
كود :
Dim Cmd As New OleDbCommand()
Private Sub Btn_Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Save.Click
       'هنا ستقوم بتعريف هذه المتغيرات
       Dim Id As Integer
       Dim Name As String
       Dim Ghiab As Boolean
       Dim Cmd As New OleDbCommand("indert into [اسم الجدول] (Id,Name,Ghiab)Values(@Id,@Name, @Ghiab)", con) ' غير اسماء الحقول والجدول في كل الباراميترات الى ماعندك
       ' تحتاج الى هذه الفور زيادة على الحفظ العادي
       If con.State = ConnectionState.Open Then con.Close()
       con.Open()
       For i As Integer = 0 To DataGridView1.Rows.Count - 1
           Id = DataGridView1.Rows(i).Cells(0).Value
           Name = DataGridView1.Rows(i).Cells(1).Value
           Ghiab = DataGridView1.Rows(i).Cells(2).Value
           Cmd.Parameters.Add(New OleDbParameter("@Id", OleDbType.Integer)).Value = Id
           Cmd.Parameters.Add(New OleDbParameter("@Name", OleDbType.VarWChar)).Value = Name
           Cmd.Parameters.Add(New OleDbParameter("@Ghiab", OleDbType.Boolean)).Value = Ghiab

           Cmd.ExecuteNonQuery()
           Cmd.Parameters.Clear()
       Next
       con.Close()
       MessageBox.Show("تم تعديل البيانات بنجاح", "حفظ", MessageBoxButtons.OK, MessageBoxIcon.Information)

   End Sub

او كود تعديل ان كانت مخزنة

Update
كود :
Private Sub Btn_Update_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Update.Click
       'هنا ستقوم بتعريف هذه المتغيرات
       Dim Id As Integer
       Dim Name As String
       Dim Ghiab As Boolean
       Dim Cmd As New OleDbCommand("Update [اسم الجدول] Set Name=@Name,Ghiab= @Ghiab Where ID =@ID", con) ' غير اسماء الحقول والجدول في كل الباراميترات الى ماعندك
       ' تحتاج الى هذه الفور زيادة على الحفظ العادي
       If con.State = ConnectionState.Open Then con.Close()
       con.Open()
       For i As Integer = 0 To DataGridView1.Rows.Count - 1
           Id = DataGridView1.Rows(i).Cells(0).Value
           Name = DataGridView1.Rows(i).Cells(1).Value
           Ghiab = DataGridView1.Rows(i).Cells(2).Value

           Cmd.Parameters.Add(New OleDbParameter("@Name", OleDbType.VarWChar)).Value = Name
           Cmd.Parameters.Add(New OleDbParameter("@Ghiab", OleDbType.Boolean)).Value = Ghiab
           Cmd.Parameters.Add(New OleDbParameter("@Id", OleDbType.Integer)).Value = Id

           Cmd.ExecuteNonQuery()
           Cmd.Parameters.Clear()
       Next
       con.Close()
       MessageBox.Show("تم تعديل البيانات بنجاح", "حفظ", MessageBoxButtons.OK, MessageBoxIcon.Information)

   End Sub
الرد
تم الشكر بواسطة: سعود , عبد العزيز البسكري
#6
(16-08-19, 12:36 PM)ابراهيم ايبو كتب : السلام عليكم اخي الكريم
انت تحتاج الى كود حفظ  من الداتا غرايد بادخال عدة سجلات دفعة واحدة
 اذا لم تكن البيانات مخزنة سابقا 
Save
كود :
Dim Cmd As New OleDbCommand()
Private Sub Btn_Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Save.Click
       'هنا ستقوم بتعريف هذه المتغيرات
       Dim Id As Integer
       Dim Name As String
       Dim Ghiab As Boolean
       Dim Cmd As New OleDbCommand("indert into [اسم الجدول] (Id,Name,Ghiab)Values(@Id,@Name, @Ghiab)", con) ' غير اسماء الحقول والجدول في كل الباراميترات الى ماعندك
       ' تحتاج الى هذه الفور زيادة على الحفظ العادي
       If con.State = ConnectionState.Open Then con.Close()
       con.Open()
       For i As Integer = 0 To DataGridView1.Rows.Count - 1
           Id = DataGridView1.Rows(i).Cells(0).Value
           Name = DataGridView1.Rows(i).Cells(1).Value
           Ghiab = DataGridView1.Rows(i).Cells(2).Value
           Cmd.Parameters.Add(New OleDbParameter("@Id", OleDbType.Integer)).Value = Id
           Cmd.Parameters.Add(New OleDbParameter("@Name", OleDbType.VarWChar)).Value = Name
           Cmd.Parameters.Add(New OleDbParameter("@Ghiab", OleDbType.Boolean)).Value = Ghiab

           Cmd.ExecuteNonQuery()
           Cmd.Parameters.Clear()
       Next
       con.Close()
       MessageBox.Show("تم تعديل البيانات بنجاح", "حفظ", MessageBoxButtons.OK, MessageBoxIcon.Information)

   End Sub

او كود تعديل ان كانت مخزنة

Update
كود :
Private Sub Btn_Update_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Update.Click
       'هنا ستقوم بتعريف هذه المتغيرات
       Dim Id As Integer
       Dim Name As String
       Dim Ghiab As Boolean
       Dim Cmd As New OleDbCommand("Update [اسم الجدول] Set Name=@Name,Ghiab= @Ghiab Where ID =@ID", con) ' غير اسماء الحقول والجدول في كل الباراميترات الى ماعندك
       ' تحتاج الى هذه الفور زيادة على الحفظ العادي
       If con.State = ConnectionState.Open Then con.Close()
       con.Open()
       For i As Integer = 0 To DataGridView1.Rows.Count - 1
           Id = DataGridView1.Rows(i).Cells(0).Value
           Name = DataGridView1.Rows(i).Cells(1).Value
           Ghiab = DataGridView1.Rows(i).Cells(2).Value

           Cmd.Parameters.Add(New OleDbParameter("@Name", OleDbType.VarWChar)).Value = Name
           Cmd.Parameters.Add(New OleDbParameter("@Ghiab", OleDbType.Boolean)).Value = Ghiab
           Cmd.Parameters.Add(New OleDbParameter("@Id", OleDbType.Integer)).Value = Id

           Cmd.ExecuteNonQuery()
           Cmd.Parameters.Clear()
       Next
       con.Close()
       MessageBox.Show("تم تعديل البيانات بنجاح", "حفظ", MessageBoxButtons.OK, MessageBoxIcon.Information)

   End Sub

جزاكم الله خيرا كثيرا خي الحبيب
بس بيخزن داخل حقل الاسم نص System.Data.DataRowView
الرد
تم الشكر بواسطة: ابراهيم ايبو
#7
السلام عليكم اخي الكريم 

اليوم هو يوم الاخطاء الكتابية جعله الله يوم خير علينا
ورد في كود الحفظ كلمة (indert into ) والصواب (insert into )
ارجو منك التدقيق في الكود فجل من لايخطئ
الرد
تم الشكر بواسطة:
#8
(17-08-19, 02:38 AM)ابراهيم ايبو كتب :
السلام عليكم اخي الكريم 

اليوم هو يوم الاخطاء الكتابية جعله الله يوم خير علينا
ورد في كود الحفظ كلمة (indert into ) والصواب (insert into )
ارجو منك التدقيق في الكود فجل من لايخطئ

الجملة عندي INSERT INTO
الرد
تم الشكر بواسطة: ابراهيم ايبو
#9
السلام عليكم ورحمة الله وبركاته
تعال الى هذا السطر في جملة الفور
كود :
Name = DataGridView1.Rows(i).Cells(1).Value
وزد عليه تحوبل الى نص كونه نصي بهذا الشكل
كود :
Name = DataGridView1.Rows(i).Cells(1).Value.ToString()
الرد
#10
(17-08-19, 12:13 PM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
تعال الى هذا السطر في جملة الفور
كود :
Name = DataGridView1.Rows(i).Cells(1).Value
وزد عليه تحوبل الى نص كونه نصي بهذا الشكل
كود :
Name = DataGridView1.Rows(i).Cells(1).Value.ToString()

أشكرك شكر جزيلا الأخ/  ابراهيم ايبو نجح معي لكود بالفعل
هل من الممكن تسجيل الخانات التي اختيارها فقط
الرد
تم الشكر بواسطة:



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


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