تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
التعديل على عمود في الداتاقريد فيو دفعة واحد بناء على قيمة معينة
#1
السلام عليكم ورحمة الله وبركاته وكل عام وانتم بخير

اخواني أريد أ، أعمل تحديث لبعض البيانات حيث يوجد عندي أحد الأعمدة وبه أيام الأسبوع وعمود آخر به حالة الموظف ( حالة الموظف تعني غائب ، إجازة أسبوعية , إجازة اضطرارية )  الذي أريد أن أعمله مثلاُ يغير يوم الخميس بدل أن يكون إجازة أسبوعية يجعله لي إجازة اضطرارية ولكن لكل الموظفين
أنا عملت الكود التالي

عملت تكست بوكس textbox5   و  combobox1  بحيث أنه أختار اليوم من خلال الكوموبوبكس  وعندها يقوم بالبحث في الداتاقريد فيو وعندما يجد يوم الخميس يقوم باستبدال القيمة حسب الموجود في  textbox5       ولكن الذي يحصل أنه يعدل الصف المحدد الذي أنا واقف عليه


دمتم بود

For i As Integer = 0 To DataGridView2.Rows.Count - 1

If DataGridView2.Rows(i).Cells(3).Value = ComboBox1.Text Then

''If Form2.DataGridView2.Rows(i).Cells(4).Value = DateTimePicker1.Value Then

DataGridView2.Rows(i).Cells(1).Value = TextBox3.Text

Dim cmdupdate As SqlCommand = New SqlCommand("update Daily_Tabel set Emp_State=@Emp_State where ID = @ID", Sqlcon)

cmdupdate.Parameters.Add("@Emp_State", SqlDbType.NVarChar).Value = TextBox5.Text

cmdupdate.Parameters.Add("@ID", SqlDbType.Int).Value = TextBox1.Text

Sqlcon.Open()

If cmdupdate.ExecuteNonQuery = 1 Then

End If

Sqlcon.Close()

 

'End If

End If

Next


 

 

 

 

MsgBox("تم تعديل حالة الموظف")

آسف اخواني تكرر الموضوع ولم أنتبه
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم اخي الكريم
واضحى مبارك

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

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







الرد }}}
#3
أشكرك أخي إبراهيم على سرعة ردك فعلاً كلامك سليم 100/ 100 وتم التعديل في الداتا قريد فيو ليوم الخميس فقط تماماً كما أريد ولكن عند الحفظ يغير كل الأيام ( يعني في الداتاقريد فيو يعدل أيام الخميس فقط لكن بعد الحفظ تتغير كلها )
ممكن الحل اني اقوم بحفظ التغييرات من الداتاقريد فيو مباشرة دفعة واحدة لكن للأسف مش عارف الطريقة

ولك جزيل الشكر
دمتم بود
الرد }}}
تم الشكر بواسطة: حريف برمجة
#4
السلام عليكم ورحمة الله وبركاته
احي الكريم جيولوجي
شي طبيعي انه سيقوم بالتعديل على كل السجلات لانك جلبت الكل اولا والداتا تابل تحوي كل السجلات
والحل يكون كالتالي
نقوم بجملة استعلام مع داتا تابل جديدة بحيث نضع شرط ان تكون Emp_State تساوي ماهو موجود في الكومبوبوكس
هنا ستأتي السجلات المراد تعديلها فقط والتي تساوي في الحقل المطلوب الكومبو بوكس ويتم تعديل الحقل المطلوب وفق الاي دي الموجود في الداتا تابل الجديدة
والقيمة التي سنغيرها نأخذها من مربع النص رقم 5 نعمل ذلك في جملة For
جرب الكود التالي وبإذن الله سيعمل 
كود :
' داتا تابل جديدة
       Dim dtt As New DataTable()
       ' جلب السجلات التي تطابق اليوم الموجود في الكومبوبوكس
       da = New SqlDataAdapter("select * from Daily_Tabel Where Emp_State = '" & ComboBox1.Text & "'", Sqlcon)
       da.Fill(dtt)
       ' اذا كان يوجد سجلات
       If dtt.Rows.Count > 0 Then
           For i As Integer = 0 To dtt.Rows.Count - 1
               Cmd = New SqlCommand("Update Daily_Tabel set Emp_State=@Emp_State where ID = @ID", Sqlcon)
               Cmd.Parameters.Add(New SqlParameter("@Emp_State", SqlDbType.NVarChar)).Value = TextBox5.Text ' ياحذ الفيمة من مربع النص 5
               Cmd.Parameters.Add(New SqlParameter("@Id", SqlDbType.Int)).Value = CInt(dtt.Rows(i).Item(0)) ' ياحذ الفيمة الحقل الاول للداتاتابل الجديدة  
               If Sqlcon.State = ConnectionState.Closed Then Sqlcon.Open()
               
               Cmd.ExecuteNonQuery()
               
         
 Next
Sqlcon.Close()
       End If
       MessageBox.Show("تم تعديل البيانات بنجاح", "تعديل", MessageBoxButtons.OK, MessageBoxIcon.Information)
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ارجو التعديل على الدالة المرفقة - الدالة تعيد الرقم -1 new_programer 4 90 20-03-24, 01:18 PM
آخر رد: تركي الحلواني
  مشكلة فى جمع عمود فى داتا جريد فيو احمد خطاب 3 152 06-03-24, 07:49 PM
آخر رد: احمد خطاب
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 2 164 05-03-24, 08:27 PM
آخر رد: مصمم هاوي
  كيفية جمع أرقام عمود فى الداتا جريد فيو بناءاً على بيانات معينة heem1986 5 223 25-02-24, 11:26 PM
آخر رد: heem1986
  [VB.NET] استدعاء بيانات في TextBox بناء على combobox loay775 2 264 18-01-24, 05:07 PM
آخر رد: loay775
  [VB.NET] مساعدة في استدعاء البيانات معينه من form الأول إلى form 2 بدون التعديل loay775 2 274 18-01-24, 05:04 PM
آخر رد: loay775
  [سؤال] كود اظهار رساله في حال وجود الرقم في اكثر من عمود مبرمج صغير 1 6 402 09-01-24, 01:41 AM
آخر رد: Taha Okla
  الحذف للسجل بشروط معينة محمد خيري 4 361 05-01-24, 04:46 AM
آخر رد: محمد خيري
  حماية عمود داخل ورقة الاكسل العيدروس 3 190 05-01-24, 12:21 AM
آخر رد: HALIM ELEULMA
  [VB.NET] كود التعديل Abdellatif 6 394 21-12-23, 02:01 PM
آخر رد: Abdellatif

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


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