[VB.NET] سؤال بخصوص oop - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : [VB.NET] سؤال بخصوص oop (/showthread.php?tid=26712) الصفحات:
1
2
|
سؤال بخصوص oop - ay.alhaj - 30-09-18 السلام عليكم ورحمة الله وبركاته اخواني حبيت اسال كيف بإمكاني عمل اجراء لحفظ البيانات بشرط ان يستخدم لاكثر من مرة بمعنى اريد ان اقوم بعمل كود حفظ في قاعدة بيانات sql server مثلا عندي شاشة الاصناف في زر الحفظ استدعي الاجراء واقوم بتغيير فقط اسم الجدول واقوم باستخدامه في شاشات اخرى كمثال شاشة المبيعات استدعي نفس الاجراء ولكن اقوم بتغيير اسم الجدول فقط وشكرا لكم RE: سؤال بخصوص oop - mmali127 - 30-09-18 السلام عليكم ورحمه الله وبركاته يمكنك استخدام الاجراء التالى وذلك بعد تعريفة فى مديول Sub SavaData(sql As String, para() As String, valus() As String) cmd = New SqlCommand(sql, Conn) For i As Integer = 0 To para.Count - 1 cmd.Parameters.AddWithValue(para(i), valus(i)) Next If Conn.State = ConnectionState.Open Then Conn.Close() End If Conn.Open() Try cmd.ExecuteNonQuery() Catch ex As Exception End Try Conn.Close() End Sub حيث ان ال sql هو تعريف الجدول المراد الحفظ به تحياتى RE: سؤال بخصوص oop - ay.alhaj - 30-09-18 جزاك الله كل خير لكن انا اريد الكود في وضع discdisconnecting mode اي باستخدام dataset RE: سؤال بخصوص oop - ay.alhaj - 30-09-18 لماذا لا يوجد رد RE: سؤال بخصوص oop - عبدالله الدوسري - 30-09-18 (30-09-18, 02:38 PM)ay.alhaj كتب : جزاك الله كل خير لكن انا اريد الكود في وضع discdisconnecting mode كل جدول له TableAdapter خاص به ولا يمكن لهذا الـ TableAdapter تحديث بيانات جدول آخر لماذا ؟ 1 - لأنه يحتوي على جمل الإستعلام الخاصة بهذا الجدول 2 - لأن هذا الـ TableAdapter يتحسس حالت السجلات في الجدول ( عند تنفيذ إجراء - الـ Update ) بمعنى : إذا كان الجدول يحتوي على 50 سجل , 10 سجلات محذوفين , 3 سجلات مضافين جدد , 7 سجلات تم تغيير بياناتهم , الباقي لم يتم المساس بهم. ماذا يفعل الـ TableAdapter الآن : سيقوم بالتحقق من جميع السجلات قبل أي إجراء يتخذ ضد هذة السجلات وسيسأل عن حالة السجل : 1 - إذا كانت حالت السجل في الجدول المطلوب تحديثة = محذوف ( سينفذ جملة SQL الخاصة بالحذف ضد هذا السجل فقط ) DELETE FROM Table1 WHER ID = 1 2 - إذا كانت حالت السجل في الجدول المطلوب تحديثة = جديد ( سينفذ جملة SQL الخاصة بالإدراج ضد هذا السجل فقط ) INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...) 0 3 - إذا كانت حالت السجل في الجدول المطلوب تحديثة = معدل ( سينفذ جملة SQL الخاصة بالتحديث ضد هذا السجل فقط ) UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; 0 4 - إذا كانت حالت السجل في الجدول المطلوب تحديثة = لم يتغير ( لن يكون ضمن السجلات التي سيتم علية إجراء ) تذكر أن الـ tableadapter سينشئ جميع الـ parameters لأغراض تفنيذ الإجراء , مما يعني أنه يجب أن يتعامل مع جدول محدد , كل هذا يتم عند إستدعاء الأمر Update tableadapter.update(DataTable) 0 أو tableadapter.update(DataSet) 0 لذلك من الظروري أن يكون لكل جدول tableadapter خاص به إذا كنت تفكر في إستعمال شيئ يقلل عليك كتابة الكود أي tableadapter لديك موجود في الـ Dataset إنشئ Module أو Class ثم قم بعمل متغر لكل tableadapter لديك فيه عندها يمكنك إستخدامها في أكثر من مكان . MyClass.tableadapter1.update(Datatable1) 0 MyClass.tableadapter2.update(Datatable2) 0 MyClass.tableadapter3.update(Datatable3) 0 أو برجاء وضح ما الذي فكر فيه أكثر , لأن الذي تريدة لم تصل فكرتة بعد ماذا تعني بـ استدعي نفس الاجراء ولكن اقوم بتغيير اسم الجدول فقط إشرح ما الذي يحدث داخل الإجراء لوصول الفكرة الواضح أن الإجراء الذي تفكر فية يستقبل متغير وهو اسم الجدول لكن ماذا نتوقع من هذا الإجراء الذي ستقوم به ؟ RE: سؤال بخصوص oop - mmali127 - 30-09-18 السلام عليكم ان شاء الله جارى تجهيز مثال لاستدعاء اجراء الحفظ واستعمالة فى شاشات مختلفة للحفظ بجدوال مختلفة تحياتى RE: سؤال بخصوص oop - ay.alhaj - 30-09-18 شكرا لك اخي الفاضل لسرعتك في الرد المقصود انا اولا استخدم النظام المنفصل اريد عمل كلاس وليكن مثلا اسمه save ولنفرض ان عندي شاشات متعددة مثل الاصناف والموظفين والمبيعات انا عند الحفظ اولا اقواقوم بعمل جملة sql ثم اقوم بوضع الادابتر وامرر له جملة الاتصال وجملة sql ثم اقوم بتعبئة داتا ست ثم اعبئ الداتا ست في داتا تيبل انا اريد ان اضع هذا الكود في كلاس واحد واستخدمه في اي مكان اريده وقت ما اريد يعني احتجت كود حفظ في شاشة المشتريات اقوم باستدعاء الاجراء Save(table1) Table1 اسم الجدول المراد الحفظ فيه كمثال جدول المشتريات او جدوجدول الاصناف ارجو ان اكون قد اوصلت الفكرة لك شكرا لك اخي في انتظارك في اخ كان يشرح على اليوتيوب عن مكتبة هوا عملها كان في زر الحفظ ما يكتب غير سطر واحد كمثال Save(table1,me,condition) Tabl1 اسم الجدول المراد اضافة البيانات عليه Me هو موقع كنترول في اي شاشة موجود Condition هو الشرط المراد اعطائهاعطائه اريد ان اعمل مثل هذا حتى اختصر الوقت في الحفظ والتعديل والحذف والبحث الخ... بدل ما اعمل في كل شاشة اكواد حفظ وتعديل وحذف اعملهم في class واستدعيه في كل شاشة RE: سؤال بخصوص oop - عبدالله الدوسري - 30-09-18 ردي السابق كان يقصد إستخدام الـ Dataset بواسطة الـ Designer كمنظم لعملية إدارة البيانات في البرنامج . أنت لا تقوم بإدارة البيانات من خلال الـ Dataset Designer كما في الصورة التالية ؟ ( صحيح ) [attachment=19700] RE: سؤال بخصوص oop - ay.alhaj - 30-09-18 نعم اخي لا اقوم بذلك انا اقوم بملئها بالكود فقط بنظام Disconnecting mode RE: سؤال بخصوص oop - عبدالله الدوسري - 30-09-18 (30-09-18, 09:53 PM)ay.alhaj كتب : نعم اخي لا اقوم بذلك المنتدى مليئ بمواضيع تتحدث عن ما تريد , فقط ابحث وستجد الكثير . |