![]() |
|
هل جملة التعديل صحيح لدي ارجو المساعده السرريعة - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : هل جملة التعديل صحيح لدي ارجو المساعده السرريعة (/showthread.php?tid=23484) الصفحات:
1
2
|
هل جملة التعديل صحيح لدي ارجو المساعده السرريعة - مراد بورجي - 23-01-18 السلام وعليكم ورحمته الله وبركاتة لدي جملة تعديل في الداتا جريد ولكن عند التعديل يقوم ويعدل كل الصفوف باول قيمة في الصف الاول انا استخدمات طريقة الاستعلام التالية هل هي صحيحة PHP كود : For i As Integer = 0 To DataGridView1.RowCount - 2RE: هل جملة التعديل صحيح لدي ارجو المساعده السرريعة - محمود صالح - 23-01-18 عن تجربة update متنفعش لحلتك مثلا لو الدتا جريد عبارة عن فاتورة وفيها 5 صفوف عبارة عن اصناف لو حبيت تعدل بالحذف وتخليهم 4 صفوف او 4 اصناف upate مش هتحذف الصف الخامس مثلا الى انت حذفته لانها ببساطة بتعدل قيم وصفوف موجودة بالفعل ومش شغلتها تحذف ايه الحل ؟ ببساطة هتقوم بالحذف المستند بشرط رقمه لانه لا يتكرر وضيفه تاني بعد التعديل كانك بتحفظ مستند جديد دي الفكرة الى بستخدمها وممكن احد الاخوة يكون عنده فكرة تاني هذا ما اعلمه والله اعلم وكود PHP كود : "DELETE FROM QYE WHERE inv like '" & TextBox2.Text & "'"RE: هل جملة التعديل صحيح لدي ارجو المساعده السرريعة - مراد بورجي - 23-01-18 شكرا اخي جزاك الله الف خير بس اخي فكرة الحذف والادخال من جديد صعبة ومش عملية انا بقوم باستعراض البيانات بلاول في الجريد فيو ومن تم اقوم بعمل تعديل بحسب الكود المرفق ولكن الكود لو كان عندي خمس اصناف واقوم بعمل التعديل يقوم يعدل جميع الاصناف الخمسة باخر صنف RE: هل جملة التعديل صحيح لدي ارجو المساعده السرريعة - محمود صالح - 23-01-18 (23-01-18, 11:50 AM)مراد بورجي كتب : شكرا اخي جزاك الله الف خير تمام انا فاهم ولان انت مش واخد بالك من عمل update ببساطة بعيدا عن الالفاظ العلمية جملة update هي عبارة عن حلقة تكرار بداخلها وكمثال جرب ان تضع جملة update لوحدها دون حلقة تكرار for تمام (مع تثبيت (rows(0 مثلا) هتلاقي الى حصل كتالي (خلينا مع مثال الفاتورة) هتلاقي كل الصفوف (الى هما 5 صفوف )الموجودة في قاعدة البيانات اتغيرت ببيانات الصف الاول datagridview معنى كده زي ما قلتلك انها حلقة تكرارية داخلية ان صح التعبير طيب في مثالك انت لما نضيف على جملة update عليها حلقة تكرارية for كمان كيف حكون عملها ركز الاول اخدت بيانات الصف الاول datagridview وغيرت جميع الصوف الخمسة الى في قاعدة البيانات بنفس بيانات الصف الاول وبعد كده اخدت الصف الثاني datagridview وغيرت جميع الصوف الخمسة الى في قاعدة البيانات بنفس بيانات الصف الثاني وهكذا لغاية الصف الاخير هتلاقي معلومات الصف الاخير هي الموجودة في الخمسة صوف في قاعدة البيانات فهمت شغل update ازاي في مثالك علشان كده بقلك متنفعش في حالتك دي RE: هل جملة التعديل صحيح لدي ارجو المساعده السرريعة - مراد بورجي - 23-01-18 طيب ايش الحل في رائكم بطريقتك معناه اننا استعلم عن الفاتورة واقوم بحذفها ومن تم اعيد تعديل عليها وحفظها تقصد كذا بدون تنظيف الجريد فيو RE: هل جملة التعديل صحيح لدي ارجو المساعده السرريعة - عبدالله الدوسري - 23-01-18 الخطاء في انك مثبت هذة القيمة في كل حلقة تكرار where inv='" & TextBox2.Text & "'" المفروض ان تضع رقم الــ ID الخاص بالسجل الذي تقوم بعمل Update له والـ ID المفروض يتغير في كل لفة أخطاء أخرى : لا أعرف كيف أصنفها , إعتبرها تحت مسمى الجودة أولاً : Dim a As New OleDb.OleDbCommand من المفترض أن تكون خارج الحلقة وليس في كل لفة تقوم بإنشاء أمر جديد أيضاً : a.Connection = con ما هو ثابت لماذا تقوم بتعيين القيمة له في كل لفة ثانياً : If con.State = ConnectionState.Open Then con.Close() con.Open() المفروض أن تسأل عن حالة الإتصال فقط مرة واحدة قبل الدخول إلى الحلقة وإذا مغلق يتم فتح الإتصال قبل الدخول إلى الحلقة وبعد الإنتهاء من كامل حلقة التكرار تقوم بإغلاق الإتصال ---------------------------------------- داخل الحلقة المفرتض أن تعين قيمة CommandText وتنفيذ الإستعلام ExecuteNonQuery فقط لاغير ------------------------------------------------------------- الحل : أولاً : في كل حلقة ----------------------------- where inv='" & TextBox2.Text & "'" ضع رقم الــ ID ( الـprimary key ) الخاص بالسجل الذي تقوم بعمل Update له ليصبح : PHP كود : where inv = Val(DataGridView1.Rows(i).Cells(xxxxxxxxxxxxxxxxx).Value) إذا كان الــID عبارة عن رقم قم بإزالة التنصيص المعلم باللون الأحمر , تماماً مثل ما عملت مع الحقل QTY بدون تنصيص '" & Val(DataGridView1.Rows(i).Cells(xxxxxxxxx).Value) & "'" ----------------------------- الكود الكامل : بعد التعديل PHP كود : Dim a As New OleDb.OleDbCommand() With {.Connection = con, .CommandType = CommandType.Text}سؤااااااااااااااااااااااااااااااااااااااااااااااال يطرح نفسة ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ لماذا تعتمد على الـDatagridview بينما الجدول الأصل موجود لماذا لا تتعامل مع الجدول مباشرة الــ DataRow تابع معي هذا الدرس مثال بسيط لبرنامج إجازات فقط لأغراض الشرح (الدرس الأول) RE: هل جملة التعديل صحيح لدي ارجو المساعده السرريعة - محمود صالح - 23-01-18 بعد اذن صاحب الموضوع اخي عبدالله الدوسري طريقتك انا استخدمتها قبل كده حلت 90% من الموضوع ولكن مع التجربة اكتشفت مشكلة وهي التعديل بالحذف وليس التعديل في القيم مع وجود الصف مثلا كما قلت سابقا فاتورة 5 صفوف او اصناف اراد ان يحذف صف او صنف فاصبحت الدتا جريد فيو 4 بدل 5 ويريد التعديل ما الحل بنفس جملة updata لم اجد الى الطريقة الحذف والاضافة مرة اخرى ولو عنك حل تبقى مشكور جدا RE: هل جملة التعديل صحيح لدي ارجو المساعده السرريعة - مراد بورجي - 23-01-18 PHP كود : where inv = Val(DataGridView1.Rows(i).Cells(xxxxxxxxxxxxxxxxx).Value) PHP كود : 'Elseمن تم اعمل تعديل بحسب الاستعلم عن طريق زر الفيو التالي للجدول كماهو في الصورة المرفقة RE: هل جملة التعديل صحيح لدي ارجو المساعده السرريعة - عبدالله الدوسري - 23-01-18 (23-01-18, 01:33 PM)محمود صالح كتب : بعد اذن صاحب الموضوع ممكن تذكر لي طريقتك في حذف السجل المفروض تتعامل مع Datarow وليس مع الــ Datagridview ببساطة الجدول يحتوي على صفوف Rows كل Row له خاصية إسمها RowState تدل على حالة السجل إذا كان محذوف أو جديد أو لم يتم التعديل علية أو غير مرتبط بأي جدول أو تم التعديل علية PHP كود : Added يأتي الآن دور الـTableadapter يقوم الـTableadapter عند تنفيذ أمر Update بالإلتفاف على جميل السجلات في الجدول (على سبيل المثال : Update لجدول معين ) ويقوم الـTableadapter بسؤال كل سجل عن حالتة إذا Added يقوم الـTableadapter بتنفيذ أمر INSER ضد هذا السجل إذا Deleted يقوم الـTableadapter بتنفيذ أمر DELETE ضد هذا السجل إذا Detached لا يقوم الـTableadapter بتنفيذ أي شيء ضد هذا السجل Detached تعني ان هذا السجل تم إنشائة ولكن لا يرتبط بأي جدول ممكن أنت جلبتة من قاعدة البيانات لكنك نفذة أمر remove علية لإخراجة من الجدول ,, لاحض هذا لا يعني الحذف بل فقط إخراج من المجموعة أو ممكن أنت أنشائت سجل جديد ولكنك لم تقم بإضافتة في أي جدول إذا Modified يقوم الـTableadapter بتنفيذ أمر Update ضد هذا السجل يعني سيقوم بالتعديل علية حسب البيانات الجديدة إذا Unchanged لا يقوم الـTableadapter بتنفيذ أي شيء ضد هذا السجل لأنة وبكل بساطة لا يوجد أي تغيير على هذا السجل وهكذا دواليك مع جميع الصفوف الموجودة بالجدول حتى ينتهي الـTableadapter كلها تحت أمر واحد وهو Update RE: هل جملة التعديل صحيح لدي ارجو المساعده السرريعة - مراد بورجي - 23-01-18 جميل جدا اخي عبدالله ولكن هل هناك كود بسيط يوضح عملية Modified في Tableadapter مع جملة التعديل على الداتا جريد بشرط |