تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] تعديل عدة سجلات
#1
السلام عليكم
عندي جدول الاصناف بقاعدة بيانات sql server بها سعر الشراء وسعر البيع
وهناك عدة اصناف لهم نفس السعر
هل هناك طريقة اعدل بها الاسعار لاكثر من صنف دفعة واحدة
وشكرا مقدما
الرد
تم الشكر بواسطة:
#2
يا ابو يوسف
حدد اصنافك التي تريد تعديل اسعارها في مصفوفة
ثم اجعل شرط التحديث وفق عناصر المصفوفة
مثال

PHP كود :
Dim _Update As String "Update TableName Set [email protected] Where Kind = @Kind"
 
       Using Cmd As New OleDb.OleDbCommand With {.CommandText _Update, .Connection Conn}
 
           Dim array() As String = {"قهوة""سكر""عصير"}

 
           For Each elem As String In array
 
               Cmd.Parameters.Clear()
 
               Cmd.Parameters.AddWithValue("@Price"500)
 
               Cmd.Parameters.AddWithValue("@kind"elem)
 
               Cmd.ExecuteNonQuery()
 
           Next

        End Using 
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد
تم الشكر بواسطة: ابو يوسف النواوي 2
#3
(29-01-17, 08:46 PM)ابو ليلى كتب : انا عامل تيكست بوكس بكتب فيه السعر الجديد
و عامل داتا جريد فيو يعرض فيها اسم الصنف والسعر وعامل عمود نوع تشيك بوكس علشان اعمل سيليكت علي الاصناف اللي عاوز اعدل سعرها القديم بالسعر اللي موجود بالتيكست بوكس
هل كدة مظبوط ؟
ولا في طريقه تانية
لو مظبوط ممكن اعرف الكود يبقي ازاي ؟
الرد
تم الشكر بواسطة:
#4
السلام عليكم

تعديل في جزء من كود الأستاذ ابو ليلى حسب ما ذكرت آخراً

على اعتبار انه يوجد عمود باسم id وهو رقم الصنف في الجدول
وأن عمود التشيك بوكس هو الأول (0) وأن رقم الصنف id هو الثاني (1)
كود :
Dim ids As New List(Of Integer)
For Each r As DataGridViewRow In Me.DataGridView1.Rows
    If r.Cells(0).Value Then ids.Add(CInt(r.Cells(1).Value))
Next

Dim _Update As String = "Update [TableName] Set [Price][email protected] Where [ID] IN(" & String.Join(",", ids) & ") "

مع حذف سطر
كود :
Cmd.Parameters.AddWithValue("@kind", elem)
الرد
تم الشكر بواسطة:
#5
(29-01-17, 09:37 PM)مساعدة كتب : السلام عليكم

تعديل في جزء من كود الأستاذ ابو ليلى حسب ما ذكرت آخراً

على اعتبار انه يوجد عمود باسم id وهو رقم الصنف في الجدول
وأن عمود التشيك بوكس هو الأول (0) وأن رقم الصنف id هو الثاني (1)
كود :
Dim ids As New List(Of Integer)
For Each r As DataGridViewRow In Me.DataGridView1.Rows
   If r.Cells(0).Value Then ids.Add(CInt(r.Cells(1).Value))
Next

Dim _Update As String = "Update [TableName] Set [Price][email protected] Where [ID] IN(" & String.Join(",", ids) & ") "

مع حذف سطر
كود :
Cmd.Parameters.AddWithValue("@kind", elem)

تمام هجرب واوافيكم بالاخبار جزاكم الله خيرا

(29-01-17, 08:46 PM)ابو ليلى كتب : يا ابو يوسف
حدد اصنافك التي تريد تعديل اسعارها في مصفوفة
ثم اجعل شرط التحديث وفق عناصر المصفوفة
مثال

PHP كود :
Dim _Update As String "Update TableName Set [email protected] Where Kind = @Kind"
 
       Using Cmd As New OleDb.OleDbCommand With {.CommandText _Update, .Connection Conn}
 
           Dim array() As String = {"قهوة""سكر""عصير"}

 
           For Each elem As String In array
 
               Cmd.Parameters.Clear()
 
               Cmd.Parameters.AddWithValue("@Price"500)
 
               Cmd.Parameters.AddWithValue("@kind"elem)
 
               Cmd.ExecuteNonQuery()
 
           Next

        End Using 

جزاك الله خيرا
الرد
تم الشكر بواسطة: ابو ليلى
#6
نشكر الاخ مساعدة على مساهمته

بما انه عندك حقل من نوع CheckBox فنحن سنمر على خلايا DataGridView و نقوم بعمل فحص لهذا الحقل
و اذا كان الحقل معلم ساقوم بنسخ قيمة حقل الصنف الى مصفوفه , المصفوفة ستحتوي على الاصناف المراد تحديثها

و بعدها ساستفيد من الحقول داخل المصفوفة و اقوم بالتحديث وفق الطريقة السابقة 

PHP كود :
Dim Array As New List(Of String)
 
       For Each Row As DataGridViewRow In DataGridView1.Rows
            If CType
(Row.Cells("IsUpdate"), DataGridViewCheckBoxCell).Value True Then
                Array
.Add(Row.Cells("Kind").Value)
 
           End If
 
       Next

  UpdateMultiKind
(Array) 

الحقل IsUpdate يمثل اسم CheckBox
الحقل Kind يمثل حقل الصنف

انا فصلت كود التحديث في اجراء منفصل كما يلي


PHP كود :
   Private Sub UpdateMultiKind(ByVal Array As List(Of String))
 
       If Array.Count 0 Then
            Dim _Update 
As String "Update TableName Set [email protected] Where Kind = @Kind"
 
           Using Cmd As New OleDb.OleDbCommand With {.CommandText _Update, .Connection Conn}
 
               For Each elem As String In Array
 
                   Cmd.Parameters.Clear()
 
                   Cmd.Parameters.AddWithValue("@Price"TextBox1.Text)
 
                   Cmd.Parameters.AddWithValue("@kind"elem)
 
                   Cmd.ExecuteNonQuery()
 
               Next

            End Using

        End 
If

 
   End Sub 

اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد
تم الشكر بواسطة:
#7
السلام عليكم إخواني الأعزاء ورحمة الله وبركاته
لنفترض أن عملية التعديل (دفعة واحدة) على مجموعة من الأصناف سوف تنفذ من خلال أكثر من مستخدم، برأيكم أي تعديل سوف يسجل أو يؤثر على قاعدة البيانات؟
إسرائيل إلى زوال ... وسوف تثبت الأيام ذلك ... قريباً إن شاء الله.
الرد
تم الشكر بواسطة:
#8
(29-01-17, 10:08 PM)ابو ليلى كتب : نشكر الاخ مساعدة على مساهمته

بما انه عندك حقل من نوع CheckBox فنحن سنمر على خلايا DataGridView و نقوم بعمل فحص لهذا الحقل
و اذا كان الحقل معلم ساقوم بنسخ قيمة حقل الصنف الى مصفوفه , المصفوفة ستحتوي على الاصناف المراد تحديثها

و بعدها ساستفيد من الحقول داخل المصفوفة و اقوم بالتحديث وفق الطريقة السابقة 

PHP كود :
Dim Array As New List(Of String)
 
       For Each Row As DataGridViewRow In DataGridView1.Rows
            If CType
(Row.Cells("IsUpdate"), DataGridViewCheckBoxCell).Value True Then
                Array
.Add(Row.Cells("Kind").Value)
 
           End If
 
       Next

  UpdateMultiKind
(Array) 

الحقل IsUpdate يمثل اسم CheckBox
الحقل Kind يمثل حقل الصنف

انا فصلت كود التحديث في اجراء منفصل كما يلي


PHP كود :
   Private Sub UpdateMultiKind(ByVal Array As List(Of String))
 
       If Array.Count 0 Then
            Dim _Update 
As String "Update TableName Set [email protected] Where Kind = @Kind"
 
           Using Cmd As New OleDb.OleDbCommand With {.CommandText _Update, .Connection Conn}
 
               For Each elem As String In Array
 
                   Cmd.Parameters.Clear()
 
                   Cmd.Parameters.AddWithValue("@Price"TextBox1.Text)
 
                   Cmd.Parameters.AddWithValue("@kind"elem)
 
                   Cmd.ExecuteNonQuery()
 
               Next

            End Using

        End 
If

 
   End Sub 


تسلم الكود اشتغل تمام بارك الله فيك
الرد
تم الشكر بواسطة:
#9
(30-01-17, 12:48 AM)khodor1985 كتب : السلام عليكم إخواني الأعزاء ورحمة الله وبركاته
لنفترض أن عملية التعديل (دفعة واحدة) على مجموعة من الأصناف سوف تنفذ من خلال أكثر من مستخدم، برأيكم أي تعديل سوف يسجل أو يؤثر على قاعدة البيانات؟

وعليكم السلام و رحمة الله و بركاته
اهلا بك اخي خضر 
معك حق في هذا التعليق , نحن اجبنا على قدر السؤال فقط
الواصل اخيراً سيرح التعديل (هذه هي القاعدة)
و بالنسبة لبيئة تعدد المستخدمين يجب على الاخ ان ينتبه الى (انتهاك تزامن البيانات ) (ConCurrency Exptions)
و يحسب حسابه بالحلول المناسبة 

التعديل على الاسعار و ليس على الاصناف 
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ارجو المساعده فى تعديل كود SELECT نبيل فتحى 4 94 20-04-18, 07:22 PM
آخر رد: محمد كريّم
  [كود] ترقيم سجلات كل صفحة في الكريستال محمد بن عطية 2 85 06-04-18, 02:22 AM
آخر رد: محمد بن عطية
  [VB.NET] تعديل ع كود اتصال 3asfa~mdmra 3 261 04-04-18, 09:52 PM
آخر رد: adel2000
  عمليات حفظ تعديل حذف حافظ حافظ 2 108 05-03-18, 08:39 PM
آخر رد: حافظ حافظ
  ارجو تعديل كود if hglogtd 2 87 01-03-18, 02:07 AM
آخر رد: hglogtd
  [كود] تعديل الكود saad mahyoub 1 45 27-02-18, 08:19 PM
آخر رد: saad mahyoub
  تعديل صغير bidaya 1 28 26-02-18, 05:32 AM
آخر رد: bidaya
  اي تعديل على الفورم لا يظهر عند تشغيل البرنامج مركز كلمات 7 1,230 06-02-18, 08:22 PM
آخر رد: Basil Abdallah
  [VB.NET] طلب تعديل كود بسيط جداً e-coder 10 63 04-02-18, 12:34 AM
آخر رد: e-coder
  [VB.NET] تعديل البيانات بعد استخدام جملة UNION محمد اسماعيل 4 43 02-02-18, 04:05 PM
آخر رد: محمد اسماعيل

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


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