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

إخواني الأحباب ما الفرق بين ربط قاعدة البيانات باستخدام الأدوات أو ربطها باستخدام الكود؟ ، وهل يمكن الاستغناء عن ربط القاعدة بالكود بعدما يحسُن ربطها باستخدام الأدوات؟، ولكم جزيل الشكر وجزاكم الله خيراً.
الرد
تم الشكر بواسطة:
#2
لا يوجد اختلاف فكلاهما واحد
ولكن ايهم تفضل ولماذا

فى البداية تعال نشبه الامر بـ ببناء منزل
ايهم تفضل ان يعطيك شخص بيت جاهز ومجهز من كل شئ
ولاتمام التجهيز او تغيير اى شئ عليك من التكسير والهدم حتى تعمل ما تريد

ام انك تفضل ان يعطيك الشخص المنزل على العظام / الطوب والمحارة
وانت ما عليك ان تقوم بما يحلو لك من الشكل والالوان والترتيبات

تخيل المثال ده فى نظام قاعدة البيانات
الادوات تسهل عليك عناء الاستعلام وما غيره
ولكن لا يمكنك من فعل كل ما تريده وهنا يحدث المصاعب لديك فى الاستخدام
خلاف انه يستهلك من موارد الجهاز اكثر من استخدام الاكواد خلاف البطئ وما غير ذلك

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

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

طيب لو اعطيت لك كتاب خمس كتب 
وقلت لك اريدك ان تبحث عن كتاب باسم شخص
لاحظ الجهد من بين التشبيه الاول 
والثاني اهو الادوات مثل المكتبة والجهد هو موارد الجهاز
من حيث امكانيات الجهاز 

فالكود انت من تقوم بتوزيعه والتعامل معه كما تشاء
متى يعمل ومتى يتوقف ومتى يستعد لتنفيذ الامر

بينما الادوات يبقي يعمل ومجهز دائماً اذا كنت على عمل بالبرنامج او بدون
طوال ما البرنامج شغال حتى يتم اغلاقه

اتمنى الوصف والشرح وصل لك الفكرة كاملاً لايهم افضل

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى تقديم   لكل من يقوم بالمساهمة
فى حل اى مشكلة او استفسار لديك مع اضافة رد بشكره ودعوة له
فالجميع هنا يعمل على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله
الرد
#3
(23-09-18, 08:09 PM)elgokr كتب :
لا يوجد اختلاف فكلاهما واحد
ولكن ايهم تفضل ولماذا

فى البداية تعال نشبه الامر بـ ببناء منزل
ايهم تفضل ان يعطيك شخص بيت جاهز ومجهز من كل شئ
ولاتمام التجهيز او تغيير اى شئ عليك من التكسير والهدم حتى تعمل ما تريد

ام انك تفضل ان يعطيك الشخص المنزل على العظام / الطوب والمحارة
وانت ما عليك ان تقوم بما يحلو لك من الشكل والالوان والترتيبات

تخيل المثال ده فى نظام قاعدة البيانات
الادوات تسهل عليك عناء الاستعلام وما غيره
ولكن لا يمكنك من فعل كل ما تريده وهنا يحدث المصاعب لديك فى الاستخدام
خلاف انه يستهلك من موارد الجهاز اكثر من استخدام الاكواد خلاف البطئ وما غير ذلك

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

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

طيب لو اعطيت لك كتاب خمس كتب 
وقلت لك اريدك ان تبحث عن كتاب باسم شخص
لاحظ الجهد من بين التشبيه الاول 
والثاني اهو الادوات مثل المكتبة والجهد هو موارد الجهاز
من حيث امكانيات الجهاز 

فالكود انت من تقوم بتوزيعه والتعامل معه كما تشاء
متى يعمل ومتى يتوقف ومتى يستعد لتنفيذ الامر

بينما الادوات يبقي يعمل ومجهز دائماً اذا كنت على عمل بالبرنامج او بدون
طوال ما البرنامج شغال حتى يتم اغلاقه

اتمنى الوصف والشرح وصل لك الفكرة كاملاً لايهم افضل

تحياتى لك
وتمنياتى لك التوفيق

واضح تماماً يا أخي الحبيب، الآن برأيك ماذا أصنع ؟، هل أعيد ربط قاعدة البيانات الأكسس بالمشروع من جديد باستخدام الأكواد ؟
الرد
#4
(23-09-18, 08:18 PM)Hazem1 كتب : واضح تماماً يا أخي الحبيب، الآن برأيك ماذا أصنع ؟، هل أعيد ربط قاعدة البيانات الأكسس بالمشروع من جديد باستخدام الأكواد ؟


فى البداية التكرار جميل

كل ما عليك فعله هو انشاء مشروع جديد
وطبعاً انت محتفظ بالمشروع القديم وتقوم بتقلده لك هذه المرة بالكود

سيمكنك ذلك من التعلم وملاحظة الفروقات بينهم

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى تقديم   لكل من يقوم بالمساهمة
فى حل اى مشكلة او استفسار لديك مع اضافة رد بشكره ودعوة له
فالجميع هنا يعمل على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله
الرد
#5
(23-09-18, 08:09 PM)elgokr كتب :
لا يوجد اختلاف فكلاهما واحد
ولكن ايهم تفضل ولماذا

فى البداية تعال نشبه الامر بـ ببناء منزل
ايهم تفضل ان يعطيك شخص بيت جاهز ومجهز من كل شئ
ولاتمام التجهيز او تغيير اى شئ عليك من التكسير والهدم حتى تعمل ما تريد

ام انك تفضل ان يعطيك الشخص المنزل على العظام / الطوب والمحارة
وانت ما عليك ان تقوم بما يحلو لك من الشكل والالوان والترتيبات

تخيل المثال ده فى نظام قاعدة البيانات
الادوات تسهل عليك عناء الاستعلام وما غيره
ولكن لا يمكنك من فعل كل ما تريده وهنا يحدث المصاعب لديك فى الاستخدام
خلاف انه يستهلك من موارد الجهاز اكثر من استخدام الاكواد خلاف البطئ وما غير ذلك

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

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

طيب لو اعطيت لك كتاب خمس كتب 
وقلت لك اريدك ان تبحث عن كتاب باسم شخص
لاحظ الجهد من بين التشبيه الاول 
والثاني اهو الادوات مثل المكتبة والجهد هو موارد الجهاز
من حيث امكانيات الجهاز 

فالكود انت من تقوم بتوزيعه والتعامل معه كما تشاء
متى يعمل ومتى يتوقف ومتى يستعد لتنفيذ الامر

بينما الادوات يبقي يعمل ومجهز دائماً اذا كنت على عمل بالبرنامج او بدون
طوال ما البرنامج شغال حتى يتم اغلاقه

اتمنى الوصف والشرح وصل لك الفكرة كاملاً لايهم افضل

تحياتى لك
وتمنياتى لك التوفيق

(23-09-18, 08:39 PM)elgokr كتب :
(23-09-18, 08:18 PM)Hazem1 كتب : واضح تماماً يا أخي الحبيب، الآن برأيك ماذا أصنع ؟، هل أعيد ربط قاعدة البيانات الأكسس بالمشروع من جديد باستخدام الأكواد ؟


فى البداية التكرار جميل

كل ما عليك فعله هو انشاء مشروع جديد
وطبعاً انت محتفظ بالمشروع القديم وتقوم بتقلده لك هذه المرة بالكود

سيمكنك ذلك من التعلم وملاحظة الفروقات بينهم

تحياتى لك
وتمنياتى لك التوفيق



السلام عليكم ورحمة الله وبركاتة
بصراحة لم استخدم الادوات بل الاكواد
لكن استفدنا من شرح اخونا الجوكر الواضح


(فى البداية التكرار جميل)

انا من مؤيديك التكرار جميل جدا
طبعا انا ملك التكرار في مسيرتي التعليمية للبرنامج وياما عدت برامج تعبت بها كثيرا لاجل خطا
لم استطيع حلة لكن هذا التكرار 
فادني كثيرا حتى ان الوحد كان يبحث عن خاصية معينة لاداة معينة وقد ما تمققن عيوني وانا ادور عليها صار الواحد يحفظ 
تحياتي لكم جميعا
الرد
#6
(23-09-18, 11:28 PM)essawq كتب :
(23-09-18, 08:09 PM)elgokr كتب :
لا يوجد اختلاف فكلاهما واحد
ولكن ايهم تفضل ولماذا

فى البداية تعال نشبه الامر بـ ببناء منزل
ايهم تفضل ان يعطيك شخص بيت جاهز ومجهز من كل شئ
ولاتمام التجهيز او تغيير اى شئ عليك من التكسير والهدم حتى تعمل ما تريد

ام انك تفضل ان يعطيك الشخص المنزل على العظام / الطوب والمحارة
وانت ما عليك ان تقوم بما يحلو لك من الشكل والالوان والترتيبات

تخيل المثال ده فى نظام قاعدة البيانات
الادوات تسهل عليك عناء الاستعلام وما غيره
ولكن لا يمكنك من فعل كل ما تريده وهنا يحدث المصاعب لديك فى الاستخدام
خلاف انه يستهلك من موارد الجهاز اكثر من استخدام الاكواد خلاف البطئ وما غير ذلك

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

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

طيب لو اعطيت لك كتاب خمس كتب 
وقلت لك اريدك ان تبحث عن كتاب باسم شخص
لاحظ الجهد من بين التشبيه الاول 
والثاني اهو الادوات مثل المكتبة والجهد هو موارد الجهاز
من حيث امكانيات الجهاز 

فالكود انت من تقوم بتوزيعه والتعامل معه كما تشاء
متى يعمل ومتى يتوقف ومتى يستعد لتنفيذ الامر

بينما الادوات يبقي يعمل ومجهز دائماً اذا كنت على عمل بالبرنامج او بدون
طوال ما البرنامج شغال حتى يتم اغلاقه

اتمنى الوصف والشرح وصل لك الفكرة كاملاً لايهم افضل

تحياتى لك
وتمنياتى لك التوفيق

(23-09-18, 08:39 PM)elgokr كتب :
(23-09-18, 08:18 PM)Hazem1 كتب : واضح تماماً يا أخي الحبيب، الآن برأيك ماذا أصنع ؟، هل أعيد ربط قاعدة البيانات الأكسس بالمشروع من جديد باستخدام الأكواد ؟


فى البداية التكرار جميل

كل ما عليك فعله هو انشاء مشروع جديد
وطبعاً انت محتفظ بالمشروع القديم وتقوم بتقلده لك هذه المرة بالكود

سيمكنك ذلك من التعلم وملاحظة الفروقات بينهم

تحياتى لك
وتمنياتى لك التوفيق



السلام عليكم ورحمة الله وبركاتة
بصراحة لم استخدم الادوات بل الاكواد
لكن استفدنا من شرح اخونا الجوكر الواضح


(فى البداية التكرار جميل)

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

زادك الله علماً أخي الغالي
الرد
تم الشكر بواسطة: essawq , essawq , عبدالله الدوسري , elgokr
#7
أحسن شئ أعجبني امثلة الأستاذ elgokr فهى امثلة تُحاكي الواقع، وتُعاين الخبر
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد
#8
أهلا أخي Hazem1


الكثير يسأل هذا السؤال : الجواب ( كل الطرق تؤدي إلى روما ) ( ولكن الطرق كلها لا تتشابة وإن كان بعضها متقارب ) ( ولكن المهم هنا كيف كانت رحلتك إلى روما؟ - وأي طريق سلكت؟ - ليست كل الطرق متشابهة - هذا متعب وهذا مشوار طويل وهذا وعر وآخر مرصوف وبعضها سريع وغيرها مريح , وهناك طريق يسر الناظرين وآخر يسد نفس الناظرين )

لفهم الأمور في سياقها الصحيح : كل شيء في البرنامج عبارة عن كود ( سواءاً أنت من كتبت الكود أم قام بكتابتها معالج مخصص (  الـ wizard ) في الفيجوال يقوم بكتابة الكود عنك بطريقة مختلفة عن طريقة كتابتك لها بشكل يدوياً )
الإختلاف ( بالكود : الأمر مفتوح لك لتفعل أي شيء تريد , أما عن طريق الـ wizard : فهو أسلوب محدد بإستخدام كائنات خاصة بهذا الغرض ولكن بإمكانيات كبيرة أيضاً )


ربط قاعدة البيانات باستخدام الكود : 
بإمكانك إنشاء نظام الوصول إلى البيانات بطريقتك الخاصة التي تتناسب مع متطلباتك, بإستخدام الكائن SqlCommand ( على فرض أننا نتحدث عن قاعدة بيانات SQL SERVER)
الكائن SqlCommand : من كائنات المستوى الأدنى - lowest level objects ( بمعنى هو الأساس ) من خلالة بإمكنك إنشاء منظومة الوصول إلى البيانات بالطريقة التي تريدها كيفما تريدها أن تكون.
( لا يعني أنها الأفضل مع : المشاريع الصغيرة والمتوسطة ) ( لكن بالتأكيد الأفضل في المشاريع الكبيرة التي تستخدم قواعد بيانات عالية الارتباط. )


تستطيع من خلال هذة الطريقة على سبيل المثال إنشاء ( الإستعلامات الديناميكية ) لا يمكن عملها بالـ wizard , لتوضيح أكثر , 
أنت تريد جلب بيانات , لكن شكل وهيكل البيانات ليس ثابت , الإستعلام يتم بنائة وقت التشغيل بناءاً على معطيات متغيرة تزيد أو تنقص, نفس الإجراء لكنة يقوم بإرجاع هياكل بيانات مختلفة.

هذة الطريقة تحتاج وقت أكثر
تدقيق وتصحيح أكثر
تعديلها ( يعتبر كابوس ) في المشاريع الكبيرة / كابوس كبير - أي تعديل في قاعدة البيانات يجب أن تعيد تغيير وصياغة الإستعلامات كلها مثل ( الـ SELECT  الـ INSERT  الـ UPDATE  الـ DELETE ,  ) لا أتحدث عن مشروع بسيط , إستعلاماتة لا تتعدى 20 أو 30 جدول. تخيل كمية الإستعلامات الموجودة , وأي تغيير يحدث على قاعدة البيانات يجب إعادة النظر في إستعلامات البرنامج وتعديلها , ناهيك عن إذا كانت منتشرة في المشروع بشكل كبير , تحتاج إلى تغيير جميع الأكواد في جميع أرجاء المشروع.
هذا من غير كمية البراميترات لجدول واحد , تخيل جدول يحتوي على 40 أو 50 حقل , تحتاج أيضاً إلى تعديلها وتعيين جميع قيمها يدوياً. 

الأنسان معرض للخطاء , ولكثر الأكواد بهذة الطريقة وأنت من يدير طريقة كتابة الكود, إحتمال السهو أو النسيان أو عدم الإنتباة لحركة بسيطة أثناء التطوير كبيرة جداً جداً , حتى لو كنت محترف درجة أولى.
( الكثير وليس الكل طبعاً ) من المبرمجين - فعلاً يسيء فهم وطريقة إدارة البيانات بواسطة الكود الذي يكتبة.

بعض الأمور تحتاج أن تكتبها يدوياً ( لا يمكن عملها بالـ wizard  )

ملاحظاتي :
  • هناك من لا يعرف الأدوات ( فيفضل إدارة البيانات عن طريقة الكود - بكتابة كل شيء يدوياً - من الألف إلى الياء  ) ( هذا لا يعني أنه سينشئ منظومة جديدة - فقط يريد أن يجلب البيانات في أبسط صورها )
  • الأغلب من المبرمجين لا يتبع طريقة الكتابة الصحيحة للأكواد. أمور كثيرة جداً من المفترض أن يتحقق منها ويفعلها بطريقة معينة ( هو لا يقوم بها أساساً )
  • مفهوم الفئات الـ classes  : ( تقريباً غائب عن هذة الطريقة عند أغلب المبرمجين ) (العرب خصوصاً) ( لأنها متعبة في الجهد والوقت )
          لا أقصد عمل class وتكتب فية أكواد الإتصال والأوامر ما شابة ذلك , القصد أن تكون الجداول في قاعدة البيانات على هيئة classes لديك في المشروع








ربط قاعدة البيانات باستخدام الأدوات ( الـ Wizard ) : ( موجودة منذ 13 سنة , طرحت في إصدار فيجوال 2005 )

تصرفاتها واضحة وتلبي أغلب إحتياجات المبرمجين.

بإمكانك التحكم في تصرفاتها إلى حد كبير جداً .

وقت التصميم قياسي جداً بالمقارنة مع ( كتابتها يدوياً  ) كتابتها يدوياً : ستحتاج إلى كتابة كل شيء يدوياً من الصفر , أما عن طريق الـ wizard : مجرد ضغطات على الماوس فقط بدون حتى إستخدام الكيبورد ( لجعلها تعمل فقط بدون الإضافات الأخرى التي تحتاج منك كتابة القليل جداً جداً من الأكود , لتؤدي بعض الإجراءات الأخرى)
تصميم المشروع ( يدوي بالكود : ستحتاج إلى يوم كامل مثلاُ لإنهاء المشروع ) ( بالأدوات عن طريق الـ wizard : في خلال ساعات لا تتعدى 3 أو 4 ساعات ) على سبيل المثال والتقريب.

سهولة معرفة الخطاء بسرعة لأن الفيجوال يخبرك بمكان الخطاء ( إذا كان برمجي ) ( الأخطاء المنطقية أنت من يجب عليك إكتشافها في كلا الطريقتين - بالكود أو بالأدوات ).

أي تعديل في قاعدة البيانات : فقط تحتاج إلى بعض الضغطات على الماوس في الـ Dataset, ولا تحمل هم تعيين جميع البراميترات , ولا حتى كتابتها وتصميمها وتحديد أنواعها وبأي حقل مرتبطة ومن أيين تأتي بالقيم التي تريد ربطها بها.

تعتمد كلياً على الفئات : تصميم واضح وسهل من خلال الـ Dataset , كل الجداول تأتي على هيئة فئات ( classes ) , وكل الحقول التي في الجداول تأتي على هيئة خصائص ( property ).

لا تحتاج إلى تدقيق كبير لأنها تعيد بناء نفسها بعد كل تعديل .

تعديل الإستعلامات سهل جداً وبواسطة نوافذة متخصصة في الإستعلامات.

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

تستطيع عمل علاقات بكل سهولة وبإستخدام الماوس فقط.

سهولة إدراجها في أي نافذة جديدة لإستخدامها , ( ولديك خيارين أما إدراجها على شكل DataGridView أو إدراجها على شكل Controls صناديق النصوص ومربعات الإختيار والقوائم المنسدلة )
بمجرد السحب والإفلات , وتقوم بإنشاء كل العناصر التي تتحكم في البيانات (داخل النافذة) من ( BindingNavigator ,  DataSet ,  BindingSource , TableAdapter ,  TableAdapterManager )
كل هذة الأدوات يتم إنشائها بمجرد السحب والإفلات, بالإضافة إلى كل حقول الجدول يتم إنشائها في النافذة , 
 الحقل من نوع نص ينشئ على شكل TextBox ,  الحقل من نوع صورة ينشئ على شكل PictureBox ,  الحقل من نوع صح خطأ ينشئ على شكل CheckBox 
بالإضافة إلى إنشاء Label لكل حقل يدل على تسمية الحقل ويكون ملاصق له عندما تقوم بعملية السحب والإفلات.

الـ TableAdapterManager من هذة الأدوات : بإمكانة إجراء عمل تحديث على كل جداول قاعدة البيانات بواسطة أمر واحد ( بالإضافة أنه تلقائياً عند تنفيذ أي أمر يقوم بالدخول في وضع الـ Transaction - 
هذا الوضع مهمته هي تطبيق مبداء تكامل البيانات - Data integration - 
ينطوي تكامل البيانات على الجمع بين البيانات المقيمة في مصادر مختلفة وتزويد المستخدمين بمنظور موحد لها
لو كنت تقوم بتحديث 10 جداول دفعة واحدة وكلها تحتوي على قيم مرتبطة ببعضها في هذة الجداول - إما أن تنجح كامل العملية وإما أن تفشل بالكامل - لا يتم تحديث بعض الجداول والجداول الأخرى لم تنجح في التحديث - سيؤدي إلى تظارب في البيانات في مثل هذة الحالة )


آلية جلب البيانات وفتح الإتصال وتعبئة الجداول هي نفسها ( لا يوجد أي إختلاف ) , لأنها في الأساس تستخدم الـ SqlCommands.

لا يوجد فرق في السرعة لأنها نفس الآلية المستخدمة. ( ولكن تحتاج إلى معرفة تصرفات هذة الأدوات مثل الـ TableAdapter وكيف يقوم بالعمل, لدية تصرف معين , بإمكانك تعديل هذا التصرف حتى لا يقوم بأمور لا داعي لها , لأنه صمم بشكل إفتراضي أن يتم العمل بشكل معين, وكل مبرمج حرية التغيير في بعض تصرفات هذا الكائن TableAdapter , إفتراضياً لو كنت تحاول إدراج 10 سجلات بالأمر Update , سيقوم بفتح وإغلاق الإتصال في كل عملية إدراج لكل سجل , يعني سيفتح الإتصال ويغلقة 10 مرات, وهذا طبعاً سيحدث بطئ في العملية , أنت بإمكانك أن تفتح الإتصال يدوياً : 
TableAdapter.Connection.Open
إجراء الأمر
TableAdapter.Connection.Close
وبذلك ستحصل على نفس سرعة الكائن SqlCommands. ) ( فقط نحتاج إلى معرفة تصرفات هذة الكائنات و الـ Mechanism خلف هذة الأدوات)

كتابة الكود الذي يتعامل مع هذة الأدوات مرتب ومنظم جداً ومدعوم بوظائف كثيرة لمساعدتك في إدارة البيانات والسجلات.

شكل الكود وقرائته أجمل ومفهومة أكثر .

لا يمكنك عمل إستعلامات ديناميكية متغيرة
لا يُقصد بإستخدامها في قاعدة بيانات عالية الارتباط. ( أي بمعنى لم يتم تصميمها للتعامل مع هذا النوع من قواعد البيانات )
القصد بعالية الإرتباط : أنها تحتوي على جداول كثيرة جداً مترابطة بشكل علائقي قوي جداً , محكمة الشروط والقيود ( وهذا النوع عادتاً يكون من نصيب الشركات الكبرى ) فبالتأكيد أنها لن تستخدم ربط البيانات من خلال الـ wizard بل ستستخدم إما منظومة جاهزة أو تقوم بتصميم المنظومة التي تناسبها )        


* طريقة تصميمك للإستعلامات تؤثر جداً على قوة أداء وسرعة تنفيذ الإجراءات في البرنامج وحتى داخل قاعدة البيانات.
* كتابتك للإستعلامات بشكل سليم وبدراية , يزيد من سرعة تنفيذ الإجراء بشكل كبير خصوصاً مع البيانات الكبيرة , العدد القليل من السجلات لا يظهر فرق أبداً في سرعة التنفيذ.

أهلاً أخي elgokr 

أعتذر منك أخي العزيز إذا قلت أنني لا أتفق معك في الكلام الذي ذكرتة.
أتمنى أن لا تكون من المتشددين والمتعصبين وتقبل رأيي بصدر رحب.  Heart
أنا غالباً لا أرد على موضوع لو كان به الكثير من المفارقات

(23-09-18, 08:09 PM)elgokr كتب :
لا يوجد اختلاف فكلاهما واحد
أكيد طبعاً يوجد إختلاف في الإسلوب
( بنفسك تقوم بسرد الإختلافات في الأسفل )


ولكن ايهم تفضل ولماذا
سؤال جميل

فى البداية تعال نشبه الامر بـ ببناء منزل
ايهم تفضل ان يعطيك شخص بيت جاهز ومجهز من كل شئ
ولاتمام التجهيز او تغيير اى شئ عليك من التكسير والهدم حتى تعمل ما تريد
لست مضطر إلى التكسير والهدم
لأنه ببساطة المقاول يقول لك Cool
إذا لم يعجبك البناء !! , أقوم ببناء بيت جاهز وجديد لك ومجهز من كل شيء من جديد.



ام انك تفضل ان يعطيك الشخص المنزل على العظام / الطوب والمحارة
وانت ما عليك ان تقوم بما يحلو لك من الشكل والالوان والترتيبات
في هذة الحالة ( وتقصد عن طريق الكود ) التشبية الأكثر دقة ,
"أم أنك تفضل أن يعطيك أدوات البناء , منشار , مسامير , طابوق , إسمنت , أخشاب , حديد ,
وأنت من تقوم ببناء البيت من الصفر , طوبة طوبة"
تحتاج وقت للوصول لمرحلة الألوان والترتيبات
ولن تبداء  من مرحلة العظم !! من قام بنصف العمل هنا ( وهو البيت العظم )
لا يوجد بيت عظم هنا من الأساس, لأنك ستبداء من الصفر.



تخيل المثال ده فى نظام قاعدة البيانات
الادوات تسهل عليك عناء الاستعلام وما غيره
ولكن لا يمكنك من فعل كل ما تريده وهنا يحدث المصاعب لديك فى الاستخدام
خلاف انه يستهلك من موارد الجهاز اكثر من استخدام الاكواد خلاف البطئ وما غير ذلك
أتفق معك في هذة العبارة "ولكن لا يمكنك من فعل كل ما تريده"
حتى بيئة الـ NET. بكامل كائناتها !!! لا تقوم بعمل كل ما تريد
أما موظوع إستهلاك موارد النظام , تعود لسوء إدارة المبرمج لألموارد التي يستخدمها البرنامج
يجب أن يتم التخلص من الكائنات بعد إستخدامها, لا أتوقع ومن غير المتوقع أن يقوم مبرج بعرض 10,000 أو 150,000 سجل مثلاً على الشاشة
أكيد ستجد مشاكل في موارد النظام ومن الممكن أن ينهار البرنامج, لأنها تحمل في الذاكرة العشوائية, ويجب التخلص من أي كائن يستخدم موارد النظام.
البطئ وما غير ذلك : لا يوجد أي بطئ في التعامل مع البيانات عندما نستخدم الـ Wizard في إنشاء كائنات إدارة البيانات 


بينما الكود عبارة عن لديك عدد من 1 الى 10 فاذا كنت تريد رقم 5 فقط
فيمكنك استخدامه دون الحاجة لباقى الارقام بينما الادوات يعرض لك الجميع
لتستخدم بالنهاية رقم المطلوب فقط
غير متفق :  Tongue




لابسط المثال اكثر
تخيل ان امامك مكتبة وقلت لك ابحث عن كتابة باسم شخص ما
والمكتبة كبيرة وتحتوى على الكثير من الكتب فما سيكون جهدك فى البحث
لم يحالفك الحظ في هذا التشبية ,  Angel
من يقراء كلامك يعتقد أن جميع كائنات الـ NET. تعمل عند عملية البحث
وأن النظام يحاول جاهداً البحث عن الكائن المسؤول عن العملية المطلوبة ليقوم بتنفيذها
في الحقيقة هي Straightforward Process ( عملية مباشرة ) 



طيب لو اعطيت لك كتاب خمس كتب 
وقلت لك اريدك ان تبحث عن كتاب باسم شخص
لاحظ الجهد من بين التشبيه الاول 
والثاني اهو الادوات مثل المكتبة والجهد هو موارد الجهاز
من حيث امكانيات الجهاز 






فالكود انت من تقوم بتوزيعه والتعامل معه كما تشاء
متى يعمل ومتى يتوقف ومتى يستعد لتنفيذ الامر
حتى الأدوات أنت من يتحكم بها بالكامل 
متى يعمل ومتى يتوقف ومتى يستعد لتنفيذ الامر


بينما الادوات يبقي يعمل ومجهز دائماً اذا كنت على عمل بالبرنامج او بدون
طوال ما البرنامج شغال حتى يتم اغلاقه
Huh
أكيد فية سوء فهم


اتمنى الوصف والشرح وصل لك الفكرة كاملاً لايهم افضل

تحياتى لك
وتمنياتى لك التوفيق






صدقني أخي الجوكر لم اذكر هذة التفاصيل إلى من واقع تجربة تزيد عن 10 سنوات ( في إستخدام الأدوات والربط بواسطة الـ wizard )
بعد ما نزلت هذة الأدوات في الإصدارة 2005 لم أتحمس لها كثيراً لأنني لا أعرف عنها شيء أبداً , وتعلمها كان صعب لقلة الشروحات عنها
ولكن بعدها بثلاث سنوات تقريباً في سنة 2008 أجبرت على التعامل معها وتعلمها , سياسة العمل
بعد فترة من التعلم والقراءة المعمقة عن هذة الأدوات
إكتشفت أنها كنز أزاح عن كاهلي عمل شاق كنت أقوم به في السابق.
كل الذي كنت أكتبة بشكل يدوي متوفر وجميع الإجراءات التي أحتاجها تقريباً موجودة وبشكل جميل
مستوى المشاريع التي أقوم بها صغيرة ومتوسطة
لم أقم بمشروع ضخم في حياتي ( ببساطة ليسة لدي القدرة على هذا النوع من المشاريع )
لأنني SOLO DEVELOPOER
أعمل بشكل منفرد على المشروع
ليس مثل الشركات الكبرى الذين يعملون على شكل فريق عمل

 الـ wizard طريقة فعالة جداً جداً 
لا أحتاج إلى الربط بالكود 
والله لا أبالغ كانت تختصر أكثر من ما يقارب الـ 4000 سطر من الأكواد التي تكتب يدوياً.

Heart  أعجبت بها أكثر فأكثر  Heart

فتزوجتها  Big Grin
الرد
تم الشكر بواسطة: عبد العزيز البسكري , elgokr , Hazem1 , Hazem1 , essawq , essawq
#9
(24-09-18, 03:14 AM)عبدالله الدوسري كتب :
صدقني أخي الجوكر لم اذكر هذة التفاصيل إلى من واقع تجربة تزيد عن 10 سنوات ( في إستخدام الأدوات والربط بواسطة الـ wizard )
بعد ما نزلت هذة الأدوات في الإصدارة 2005 لم أتحمس لها كثيراً لأنني لا أعرف عنها شيء أبداً , وتعلمها كان صعب لقلة الشروحات عنها
ولكن بعدها بثلاث سنوات تقريباً في سنة 2008 أجبرت على التعامل معها وتعلمها , سياسة العمل
بعد فترة من التعلم والقراءة المعمقة عن هذة الأدوات
إكتشفت أنها كنز أزاح عن كاهلي عمل شاق كنت أقوم به في السابق.
كل الذي كنت أكتبة بشكل يدوي متوفر وجميع الإجراءات التي أحتاجها تقريباً موجودة وبشكل جميل
مستوى المشاريع التي أقوم بها صغيرة ومتوسطة
لم أقم بمشروع ضخم في حياتي ( ببساطة ليسة لدي القدرة على هذا النوع من المشاريع )
لأنني SOLO DEVELOPOER
أعمل بشكل منفرد على المشروع
ليس مثل الشركات الكبرى الذين يعملون على شكل فريق عمل

 الـ wizard طريقة فعالة جداً جداً 
لا أحتاج إلى الربط بالكود 
والله لا أبالغ كانت تختصر أكثر من ما يقارب الـ 4000 سطر من الأكواد التي تكتب يدوياً.

Heart  أعجبت بها أكثر فأكثر  Heart

فتزوجتها  Big Grin

ههههههههههههه اضحكنى كلامك  Big Grin 
مع ان كلامك جميل جداً لكن يبدو ان المقصود من كلامي لم يصلك بعد

فمثلاً عندما قلت التالى وقمت بردك عليه
elgokr & عبدالله الدوسري كتب :
لا يوجد اختلاف فكلاهما واحد
أكيد طبعاً يوجد إختلاف في الإسلوب
( بنفسك تقوم بسرد الإختلافات في الأسفل )
المقصود بها هنا بان لا يوجد اختلاف
هو ان كلاهما سيعطي نفس الناتج النهائي للبرنامج
دائماً عندما النظر للشئ كن مستخدماً وليس مبرمجاً
لان الشكلى النهائي هو الناتج الذى يري وليس ما كتب من اكواد وغيره
وينطبق التعليق على باقي الكلام  Big Grin
اذا احببت ان ادخل فى تفاصيل وشرح كلى ودقيق من A:Z
قد لا انتهي من شرح ادق تفاصيل كل حرف وكل ضغطة وكل اداء يستخدم
فالامور ليس بفكرة الراحة لمن يريد من حيث المبرمج يهمه الاستمتاع 
وكذلك وردة فعل المستخدم بالنهاية
بينما المستخدم يريد ما يجعله ان يشعر بلا شئ
وتذكر ان الادوات هى مكتبة تستدعي والمكتبة تحتوى على اكواد
التى نيابتاً عنك هى قامت بكتابتها ولكن بشكل عام
عند سحب TextBox ووضعه فى شاشة التصميم
لا يعنى انك استخدمت الاداء هنا بدون كتابة كود
بل ان المشروع نيابتاً عنك قام بكتابة الكود فى ملف الـ Designer
ينطبق الامر على الادوات وطريقة الاستخدام لا حاجة لشرح حتى لا يشتت الجميع
احب النقاش وتبادل الرائ فهو يزيد علماً لما لا نعلمه
وهو نور يضئ علماً ونفعاً ما لا نعلمه فلا تقلق اخى عبدالله الدوسري
فالحمد لله على نعمه
فانا لست من المتعصبين او الغاضبين
فيمكنك النقاش والتعليق على ما تشاء مهما كان فهذا يسعدني  Wink

تحياتى لك
وتميناتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى تقديم   لكل من يقوم بالمساهمة
فى حل اى مشكلة او استفسار لديك مع اضافة رد بشكره ودعوة له
فالجميع هنا يعمل على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله
الرد
تم الشكر بواسطة: Hazem1 , عبدالله الدوسري , essawq , essawq , larbihamri , larbihamri
#10
(24-09-18, 12:32 PM)elgokr كتب :
احب النقاش وتبادل الرائ فهو يزيد علماً لما لا نعلمه
وهو نور يضئ علماً ونفعاً ما لا نعلمه فلا تقلق اخى عبدالله الدوسري
فالحمد لله على نعمه
فانا لست من المتعصبين او الغاضبين
فيمكنك النقاش والتعليق على ما تشاء مهما كان فهذا يسعدني  Wink

الله يديم السعادة عليك وعلى جميع المسلمين

Heart  جميل جداً أخي elgokr  Heart

أحييك على رحابة صدرك , 

تقبل تحياتي
الرد
تم الشكر بواسطة: essawq , essawq , elgokr , larbihamri


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكلة فى اضافة حقول جديدة فى قاعدة البيانات و ربطها بالفيجوال استوديو nabil.1710 1 32 منذ 5 ساعة مضت
آخر رد: nabil.1710
Smile ممكن شرح هدا الكود الزوي 1 23 اليوم, 02:17 AM
آخر رد: عبد العزيز البسكري
  كيف ابحث داخل قاعدة البيانات احمد خطاب 2 63 أمس, 01:51 AM
آخر رد: اسامه الهرماوي
  [نقاش] خطأ بسيط في الاتصال بقاعدة البيانات اسامه الهرماوي 4 139 أمس, 01:44 AM
آخر رد: اسامه الهرماوي
  البحث عن يوم في قاعدة البيانات atefkhalf2004 2 68 16-10-18, 09:18 PM
آخر رد: WAEL ABED
  لماذا تظهر علامة خطأ على قاعدة البيانات دائماً ؟ Hazem1 0 54 12-10-18, 02:17 PM
آخر رد: Hazem1
  [سؤال] سؤال عام حول الكود في الفيجوال ستوديو Simo1991 2 84 11-10-18, 03:30 PM
آخر رد: Simo1991
  [VB.NET] مشكلة بكود التحديث لقاعدة البيانات محمد اسماعيل 4 96 11-10-18, 06:45 AM
آخر رد: محمد اسماعيل
  جلب بيانات الوقت من قاعدة البيانات access وادخالها في جدول excel alfauori 2 67 09-10-18, 03:25 AM
آخر رد: alfauori
  [VB.NET] ادخال البيانات بالجدوال المرتبطة abu ammar 3 85 06-10-18, 10:33 PM
آخر رد: asemshahen5

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


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