منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

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

عندي داتاقريد فيو تعرض البيانات من قاعدة بيانات sql   أريد أن أقوم بتعديل على خلية واحدة في كل الصفوف بشكل متتالي  ويعمل تحديد تلقائي للصف  التي تجري عليه العملية بحيث يحصل له تحديد ( يعني أرى التحديد ينتقل من صف إلى الصف الذي يليه ) 

اتمنى يكون السؤال واضح

آسف على الإطالة

دمتم بود
وعليكم السلام

السؤال غير واضح
السلام عليكم اخي الكريم
ماشاء الله نحن في عصر السرعة وانت تريد الرجوع الى زمن قبل المعالج z80 بعشرين سنة
اولا يتم تنفيد الكود بلمح البصر من خلال عملية For loop
وفق الكود التالي
كود :
For i As Integer = 0 To DataGridView1.Rows.Count - 1
           DataGridView1.Rows(i).Cells(2).Value += 10 ' هذا السطر لتعديل الخلية باضافة رقم 10 على القيمة الاصلية

           DataGridView1.Rows(i).Selected = True ' هذا السطر سيجعل الصف باللون الازرق الافتراضي
       Next

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

بداية الشكر الجزيل لكما لتفاعلكم مع الموضوع



ممكن سؤالي ما كان واضح مثل ماقال الأخ mmali127      

سؤالي كالتالي

 عندي قاعدة بيانات وأريد أن أعمل لها تعديل في خلية معينة في عمود رقم 8 والتعديل هو حذف علامة   الطرح ( - ) اذا كانت الخلية بها هذه العلامة  وتحويلها الى هذه القيمة 
"00:00"  ثم عملت الكود التالي







Dim a5 As Integer

Dim last5 As Integer = DataGridView2.Rows.Count - 1

For a5 = 0 To last5

If DataGridView2.Rows(a5).Cells(8).Value.Contains("-") Then

DataGridView2.Rows(a5).Cells(8).Value = "00:00"

'Dim cmdupdate As SqlCommand = New SqlCommand("update Daily_Table set TimeWithSecond=@TimeWithSecond where ID = @ID", Sqlcon)

'cmdupdate.Parameters.Add("@TimeWithSecond", SqlDbType.NVarChar).Value = TextBox10.Text

'cmdupdate.Parameters.Add("@ID", SqlDbType.Int).Value = CInt(TextBox11.Text)

'Sqlcon.Open()

'If cmdupdate.ExecuteNonQuery = 1 Then

'End If

'Sqlcon.Close()

End If

Next

MsgBox("تم التعديل بنجاح")


 أين المشكلة إذاً ؟

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

أريد أن يتم التعديل بالتتالي بدون أن أقوم بتحديد كل سطر لوحده

آسف على الاطالة




  

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

كود :
  Dim cmd As New SqlCommand()
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Sqlcon.Open()
       For i As Integer = 0 To DataGridView2.Rows.Count - 1
           If DataGridView2.Rows(i).Cells(8).Value.ToString().Contains("-") Then
               DataGridView2.Rows(i).Cells(8).Value = "00:00"
           End If
           cmd = New SqlCommand("update Daily_Table set TimeWithSecond=@TimeWithSecond where ID = @ID", Sqlcon)
           cmd.Parameters.Add("@TimeWithSecond", SqlDbType.NVarChar).Value = DataGridView2.Rows(i).Cells(8).Value ' الحقل المعدل
           cmd.Parameters.Add("@ID", SqlDbType.Int).Value = DataGridView2.Rows(i).Cells("ID").Value ' حقل الاي دي
           cmd.ExecuteNonQuery()
       Next
       Sqlcon.Close()
       MsgBox("تم التعديل بنجاح")
   End Sub
(20-04-20, 05:38 PM)جيولوجي مبتدئ كتب : [ -> ] أين المشكلة إذاً ؟

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

أريد أن يتم التعديل بالتتالي بدون أن أقوم بتحديد كل سطر لوحده

آسف على الاطالة

اضافة هذا السطر بعد تغيير قيمة الخلية

textbox11.text = DataGridView2.Rows(a5).Cells(8).Value

لصبح الكود كالتالي



كود :
Dim a5 As Integer

Dim last5 As Integer = DataGridView2.Rows.Count - 1

For a5 = 0 To last5

If DataGridView2.Rows(a5).Cells(8).Value.Contains("-") Then

DataGridView2.Rows(a5).Cells(8).Value = "00:00"

textbox11.text = DataGridView2.Rows(a5).Cells(8).Value

'Dim cmdupdate As SqlCommand = New SqlCommand("update Daily_Table set TimeWithSecond=@TimeWithSecond where ID = @ID", Sqlcon)

'cmdupdate.Parameters.Add("@TimeWithSecond", SqlDbType.NVarChar).Value = TextBox10.Text

'cmdupdate.Parameters.Add("@ID", SqlDbType.Int).Value = CInt(TextBox11.Text)

'Sqlcon.Open()

'If cmdupdate.ExecuteNonQuery = 1 Then

'End If

'Sqlcon.Close()

End If

Next

MsgBox("تم التعديل بنجاح")
Heart Heart Heart Heart Heart Heart Heart


 لكم جزيل الشكر اخواني

تم الحل بمساعدتكم

لن أنسى فضل هذا المنتدى


دمتم بود