الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عدة استفسارات حول Sqldataadapter والاتصال بقاعدة البيانات

بدأه Executioner في 16 مايو 2008 · 5 رد · 1,096 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته:

عندي بضعة أسئلة أرجو أن يتم الإجابة عنها بسرعة، ولكم جزيل الشكر.

1) السؤال الأول:

عند البدء بمشروع جديد في الـ #C، وعند الاتصال بـ DataBase ما، وإنشاء الـ DataSet الخاصة بهذه الـ DataBase، يتم بشكل تلقائي انشاء عدة كائنات من SqlDataAdapters بحسب عدد الجداول، والسؤال هنا؟

هل من الأفضل استخدام هذه الكائنات المعرفة أو المنشئة مسبقاً، أم الأفضل هو إنشاء كائن SqlDataAdapter وإعطائه الـ Paramerters المناسبة، أنا أقصد إنشاءه يدوياً، وما مزايا الحالة الأولى والثانية؟

2) السؤال الثاني:

هل يجب استخدام لكل جدول SqlDataAdapter خاص به، أم لا داعي لذلك يمكن استخدام كائن واحد فقط، من خلاله نغير متى أردنا الجدول ونتعامل معه؟

3) السؤال الثالث:

عند القيام باستعلام ما يدويا، أقصد من خلال كود برمجي، هل الأفضل نسخ الجداول المرادة إلى الـ DataSet والربط بينها، ثم القيام بهذا الاستعلام، أم لا داعي لذلك؟

وبكلام آخر متى نقوم بالربط ما بين الجداول ووضع المفاتيح الأساسية أو ما يسمى بالـ Primary Key؟

4) السؤال الرابع:

إذا خلطنا أقصد جمعنا ما بين طريقتي الاتصال بالـ DataBase، أي مابين طريقة الاتصال المتصل والاتصال المنفصل هل هناك أي مشكلة؟ ومع ماذا تستخدم كل منهما؟

أخيرا شكرا لكم سلفا، وأرجو العجلة في اللاجابة.

تم تعديل هذه المشاركة بواسطة Executioner في 16 مايو 2008 في 22:50

#2

1- أنا أري الأفضل انشاؤه يدويا فهذا يعيطيك قدر أكبر من المتابعة والتحكم.

2- نعم لكل جدول DataAdapter خاص به لأنه لكل جدول Queries و Commands خاصه به طبعا.

3- هذا حسب الغرض..

4- هذا حسب الحالة..

#3

العنوان غير مناسب

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

#4

السلام عليكم:

شكراً لك، ولكن لم يخطر ببالي عنوان مناسب، إضافة لذلك كنت مستعجلاً.

بالنسبة للسؤال الثاني:

هل هذا ضروري؟ أم ماذا؟

أوليس من الأفضل استخدام SqlDataAdapter واحدة لكل الجداول، لأنه في حال كان لكل جدول كائن خاص به، كثرت الكائنات، مع أنه بالامكان استخدام كائن واحد منه؟ أرجو التوضيح؟

بالنسبة للسؤال الثالث؟

هل لي بأمثلة !

بالنسبة للسؤال الرابع:

في حال أردنا أن نقوم بتصميم وبرمجة برنامج "مكتب عقاري"، حيث سيستخدمه صاحب المكتب العقاري حصراً، ما هو الأفضل؟

وشكراً.

#5

السلام عليكم ورحمة الله وبركاته:

يا شباب: هل من المعقول أن لا أحد يعرف الاجابة ؟؟؟؟ !!!!!

أرجو أن تعطوني آراءكم ؟؟

#6

السلام عليكم ورحمة الله وبركاته:

عندي استفسارات أخرى أيضأ:

أ) بالنسبة للكائن SqlDataAdapter من طرق تعريفه:

الأولى:

 

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
sqlDataAdapter.InsertCommand = new SqlCommand();
sqlDataAdapter.InsertCommand.CommandType = CommandType.Text;
sqlDataAdapter.InsertCommand.CommandText = 
"insert into emp (First_Name, Last_Name, Empno) values ('AAAAA','BBBBB',11111111);";
sqlDataAdapter.InsertCommand.Connection = new SqlConnection("... etc");

الثانية:

 

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter("insert into emp (First_Name, Last_Name, Empno) 
values ('AAAAA','BBBBB',11111111);", new SqlConnection("... etc"));

لا يوجد لدي مشكلة على الطريقة، وإنما القصة بأن هناك من قال لي أنني أستطيع بكلاهما أن أقوم بعملية إقحام، مع العلم أن الطريقة

الثانية أعطيناها الأمر في تابع البناء، وحسب معلوماتي المتواضعة أن التابع يستقبل فقط أمر (select)، أي أنه يجب أن يعاملها كذلك

وبالتالي سيعطي خطأ أثناء التنفيذ ولكنه لم يعطي؟ وإذا كان صحيحا ذلك فما الفائدة إذا من الـ

(InsertCommand,UpdateCommand,DeleteCommand,SelectCommand) الموجودة ضمن الـ (SqlDataAdapter) عندها؟؟.

ب) بالنسبة لـ SqlDataAdapter.Parameter.AddWithValue:

إما أن نقوم باستخدامها أو بطريقة ثانية بأن نضع القيم عندها بين (')، ولكن المشكلة في حال استخدمناها لا نستطيع أن نغير من سلسلة

محرفية إلى تاريخ!!، فهل هناك طريقة تحول من (DateTime) إلى (string)، طبعا بالطريقة الأولى لا داعي لأن يكون هناك سلاسل محرفية، لكني

كنت أصمم تابعا، نرسل له مصفوفة أسماء الحقول ومصفوفة القيم وكلها سلاسل محرفية، فلا تنفع معي الطريقة الأولى.

وأرجو إفادتي في معرفة أهمية أو مزايا استخدام الطريقة الأولى على الثانية.

ج) بالنسبة لـ SqlDataAdapter.Fill:

حسب علمي أنها تستخدم عند تنفيذ استعلام فقط، لتأخذ النتائج وتضعها في (DataSet)، ولكن هناك شخصا أخبرني أنه استخدمها في بقية

الحالات!، فهل هذا ممكن؟.

د) أرجو إجابتي عن الأسئلة التي طرحتها سابقا إن أمكن.

وشكراً لكم.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…