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

اشكالية حول تعلم ADO.NET

مغلق
بدأه خضر ترزي في 9 مايو 2002 · 15 رد · 2,290 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الكل سمع بان ADO.NET هي اخر صرعة في التعامل مع البيانات ، حسناً و انا سمعت كذلك و تعلمت جزء منها و باحاول اتقانها.

انزلت كل الكتب الممكنة حولها من انترنت و فحصت العديد من المواقع و قرئت الكثير من الكتابات ، و تفرجت على امثلة رائعة و لكني لم اتمكن من اتقانها حتى الان.

عندي احساس بان معظم كتاب الكتب حول تكنولوجيا .net لا يفهمون اساسا ADO.NET فانا وجدت مجموعة من التضاربات في الشرح بين كتب مختلفة :( ، يظهر الكل كاين بيعمل copy و paste للنصوص من مواقع و مستندات مختلفة و بيلصقها في كتبه و بعدها بيرسلها للنشر و من ثم للبيع :(

شيئ بيضايق حقا ، على العموم لو صادفت كتاب جيد عن ADO.NET سوف اخبركم به ، حيث انه لدي مجموعة كبيرة تنتظر ان اتصفحها.

#2

انا جربت الـADO.NET مع الASPX (طبعا بدون الـVS.NET) والغريب ان لها أكثر من طريقة ليست واحدة ولا اثنتين او ثلاثة بل أكثر بكثير وكل طريقة تختلف عن الاخرى سواء عن استخدام الـOleDbDataAdapter او غيرها فأجد طريقة الربط او استخدام امر الـSQL يختلف عن الاخر والشي الوحيد الثابت هو استخدام الموجه import :) ولكن ساستمر في المحاولة على أمل أن اجد شي ثابت

#3

مسئلة الاكثر من طريقة هذه تجنني :) ، انا باستخدم اوامر ال sqladdapters و ليس ال oledb نظرا لان الاولى مخصصة للتعامل مع SQL Server و الثانية لقواعد البيانات الاخرى.

كل الكود الذي نتج معي هو كود كثير و قبل ايام في امثلة مايكروسوفت في Technet في كندا كان بيحدث ربط بين SQL Server Web Service و جدول في فيجوال بيزك مثلا بثلاثة اوامر !!!

انا ايضا سوف استمر في الاختبارات، حيث انه فهمت تقريبا ال Data Reader و لكن هناك الكثير من الامور الاخرى الغير واضحه في معظم الكتب.

#4

طيب ياشباب انا لي يومين وانا احاول افهم شي عنها وطبعا الى الان صفر ممكن واحد يقول لنا من وين نبداء علشان نكمل بالطريق:o

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#5

ممكن تقرأ من الكتب الموجودة في الموقع :) فهي مفيدة منها هذا الكتاب

http://www.arabteam2000.com/vb/showthread....?threadid=11541

بالمناسبة انا لاحظت انه يوجد فرق في الكود عن استخدام الـVS.NET وعند استخدام أي محرر عادي فهل لاحظتم هذا ؟؟؟؟

#6

انا لم اننتبه للاختلافات في الكود الى هذه اللحظة.

سوف احاول ان اكتب شيئ عن ADO.NET اول ما افهمها بصورة متكاملة، الان انا قاعد باعمل تجارب لربط Transact SQL مع ADO.NET

#7

صار لي 3 ايام باعمل تجارب و باقرا في المستندات لما فهمت المفهوم العام وراء ربط Stored Procedure كتبتها ب Transact SQL في صفحة ASP.NET عبر ADO.NET.

طلعت روحي يعني :)

و الموضوع في النهاية كان بسيط للغاية ، 3 اسطر من الكود كتبتها انا و الباقي كله كتبه Visual Studio .NET ، يظهر انه لازم اصور نفسي فيديوا حتى اظهر للاخرين طريقة عمل ذلك.

الجيد في فيجوال ستوديو .نت بانه يكتب كل الكود لوحدة لحظة تغير خصائص الكائنات ، المشكلة هي كيف تبدا فقط

#8

بسم الله الرحمن الرحيم

استاذي الفاضل/ خضر ترزي

بعد التحية و السلام

بعد الحمد لله

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

كما اود في البداية ان اتقدم لك بالشكر والامتنان على كل ما تبدله من مجهودات و ما تكتبه من مقالات رائعة لهذا المنتذى الرائع

لذي كم موضوع اود طرحها في هذا المنتذى بشكل عام و لك انت بشكل خاص

1- كتبت مشاركة حول ال Object Orinted Desing في منتذى تصميم المشاريع ارجو ان تطلع عليها

2 - ان مثلك ( مع فارق في الخبرة طبعا ) مهتم ببرمجة قواعد البيانات بالدوت نت لكن اربكتني كثرت الطرق المستخدمة

لذلك اتمنى ان اجد طريقة واحدة لكل عملية لانه كما تعلم توجد حوالي 5 كائنات في الدوت نت يمكنها التحديث في قواعد البيانات

3 - ( سؤال ) هل يمكن تكوين ملف تنفيدي بالفيجول دوت نت يمكنه العمل لوحده على كمبيوتر بدون برنامج اعداد ( Setup )

4 - بخصوص التصويت في موقع برنامج كليك :

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

لكن عندما اردت التصويت صوت لكم من باب الأمانة العلمية .

5 - عندما قرات مقالتك في هذا المنتذى تصورتك على هيئة رجل في الستين من العمر ضئيل الجثة بكرش مستدير وشعر ابيض من الاطراف

الى ان رأيت صورتك في كتابك ( بناء تطبيقات قواعد البيانات) حمدت الله على انك مزلت في راياعان الشباب لكي تتحفنا بيمقالتك الرائعة

((((**** نفس الأمتنان و الاطراء لكل السادة المشرفين الأفاضل ****))))

#9

شكرا اخي الكريم

بالنسبة للشكل فالصورة السابقة اظن تصورتها في عام 1998 في فرنسا لما كنت هناك لفترة محدودة، انا الان في كندا منذ نصف عام، و الاكل محترم، و الحركة قليلة، و الكرش ;):):) حدث ولا حرج.

بالنسبة ل ADO.NET فانا سوف اكتب عنها شيئ قريبا فقط بعد ان انتهي من استيعابها حتى ما اكتب شيئ غلط :)

هي ليست صعبة و تعتمد على نوعين من الكائنات نوع يبدا اسمه ب ole على ما اظن و هو مخصص للاتصال بكل انواع قواعد البيانات و منها ملفات Access و غيرها.

نوع بالاسم sql و هو مخصص ل SQL Server فقط و به امكانيات رائعة باجربها الان مع Transact SQL

هناك نوع ثالث في مكان ما في موقع مايكروسوفت ل Oracle و هو اظن Beta حتى الان.

الجميل في ADO.NET هي طريقة بناء ربط بين كائنات بعدد قليل من اسطر الكود لتملئ ADO.NET تلك الكائنات، المسالة انني لم انتهي من فهم ذلك الى الان، و حسب ما الحظت انه يمكن ملئ الكائنات ببيانات حتى و ان لم تدعم تلك الكائنات قواعد البيانات عبر ADO و لست متاكد من ذلك للان.

هناك بداخل كل مجموعة عدة كائنات للتحدث مع قاعدة البيانات، لكل منها استخدامها، انا جربت sqlConnection مع sqlCommoand و الامر ExecuteReader مع Reader للحصول على مصفوفة من البيانات للقرائة فقط، و من ثم بدون Reader مع امر Execute اخر للحصول على نتيجة Transact SQL في SQL Server ، المسئلة ان الفكرة العامة لم تتكمل لدي حول ذلك و انا بحاجة الى وقت.

بالنسبة لنقل برامج .NET من جهاز الى اخر فهي لا تحتاج الى اية Setup بامكانها العمل من خلال قرص مرن حتى ان كانت مجزئة الى ملفات DLL و EXE بدون الحاجة الى تسجيلها حتى في ال Registry

بالطبع تلك البرامج تعتمد على نواة .نت، بكلمات اخرى ان لم تكن قد ثبت النواة و التي حجمها يقارب ال 20 ميغابايت في الجاز مسبقا فلن تعمل تلك البرامج

النواة يمكنها ان تثبت على Windows 98 و ما بعده ، لا يمكنها العمل على Windows 95 و تعمل بصورة كاملة عن Windows 200 و XP و Windows .NET.

مسئلة العمل بصورة كاملة هذه تقلق البعض، البرامج المصممة بالطريقة العادية لن يكن لها مشكلة مع العمل على Windows 98 و Windows ME و لكن بعض المبرمجين قد يضيفوا مميزات XP او 2000 الى برامجهم، و منها الصلاحيات على تنفيذ البرنامج.

بامكانك الان بناء برامج يستخدم نظام الصلاحيات الخاص ب Windows لتمنع اجزاء منه من العمل بدون اذن مدير الشبكة نفسه، اي ليس صلاحيات لتشغيل او عدم تشغيل البرنامج بل صلاحيات في الداخل

انا لا اعلم كيف تعمل هذه الصلاحيات الى الان و لكن برنامج يبنى ليستخدمها لن يمكنه في العمل على Windows 98 لان ذلك النظام لا يدعم Active Directory و NTFS بصورة كاملة.

و لكن ان كان البرنامج برنامج عادي فسوف يعمل اذا وجدت .نت في الجهاز

.نت سوف تتوفر بصورة طبيعية في Microsoft Windows XP service Pack 1 و هي حزمة تصليح سوف تصلح امور و تضيف تحسينات الى طبقة ال API في Windows او ربما تتوفر في Windows XP SE و هي نسخة ثانية من Windows و التي اظن التغت لتوفر التحسيانات التي بها في Service Pack 1.

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

النواة الان موجودة ضمن Windows .NET Server ايضا.

بالنسبة للمشاركة بخصوص ال Object Orinted Desing فانا اطلعت عليها، ولكني مش عارف كيف اجيب عليها، انا من ايام اكتب شيئ عن الكائنات و سي شارب و المفهوم العام للكائنات هناك، المسالة انه جمعت 20 صفحة Word من الافكار المبعثرة و التي الظاهر لن تنشر لانني لم انتهي منها، مع انني سوف احاول انهائها.

المشكلة في الكائنات فهي تختلف من لغة الى اخرى، في سي شارب بيقوم المعالج و بيئة التشغيل المشتركة بحيل جبارة لتكوين كود كائني هو غير كائني و كائني في نفس اللحظة عند التنفيذ :D ، المسالة هي كيف اشرح ذلك بافضل صورة.

بالنسبة ل UML فمايكروسوفت اضافتها و ازالتها عدة مرات من VS.NET و اظن هي غير موجودة في النسخة النهائية، و لكنها موجودة في النسخة Enterprise Architect في برنامج فرعي اسمه Microsoft Visio Enterprise Architect في القرص الليزر السابع

الان انا مشغول قليلا بالكائنات عبر سي شارب و بيئة التشغيل المشتركة ل .نت، و سوف احاول ربما بطها ب UML و لكن هذا افتراض فقط مش اكيد :) ، و سوف احاول ان اشارك في موضوعك ايضا او اضيف اجزاء من النص المتوفر عندي بداخله

شكرا ايضا للتصويت في موقع كليك

للاسف ازالونا من هناك كما كتبت في الاعلان اعلى الصفحة، و لم يصلحوا الاعطال عندهم الى اليوم، بكلمات اخرى لدينا لا يزال كود بامكانه ان يجلب النجاح الى اية من المواقع التي بقت في المنافسة ;) ولكني لا اعتقد باننا سوف نستخدمه لترجيح اية موقع

الذي ضايق الفريق العربي للبرمجة و فيجوال بيزك للعرب (نحن موقعين تربطنا علاقات جيدة جدا) الذي ضايقنا هو ان الموقعين بهم اكثر من مائة الف مشاركة معا، الفريق العربي للبرمجة بعد عام و نصف من العمل يحتوي على ما يقارب ال 50 الف مشاركة، جزء كبير منها بالطبع حوار و لكن جزء كبير منها ايضا معلومات تعليمية مفيدة، اضافة الى الوصلات الى صفحات اخرى في الموقع بناها الاعضاء و المشرفون و خارج الموقع ايضا و تتبع له ، و مع كل ما هو موجود هناك مواقع اخرى تقدم القليل جدا تتقدم بصورة مضطردة نتيجة للثغرة التي في التصويت

انا شاكر جدا لرسالتك

#10

بسم الله الرحمن الرحيم

شكرا جزيلا استاذي خضر

و ها انت ثانية تتحفنا بكرمك

الاجابات ان شاء الله وافيه و ارجو ان لا تتأخر علينا بال ADO.NET

اما بخصوص ال UML فالذي اود معرفته هو طريقة تصميم المشاريع بصفة عامة بنضرة كائنية

انا قرأت القليل عن ال UML و الذي استنتجته هو ان المنهجية تستلم نظام كامل و تسلمك مجموعة من الكائنات هي مع بعضها المشروع الجديد

و انا عن نفسي استخدمت ال OOP كطبقة عازلة بين الانترفيس و الداتا بيز

واعطت نتائج مبهرة

و الفضل في ذلك لله ثم للفريق العمل الذي اعمل معه

ثانياة انا جد ممتن لك

و ارجو من الله ان يدميك نفعا لهذا المنتذى و شكرا

#11

بسم الله الرحمن الرحيم

استاذي الفاضل خضر

في العديد من المثلة في ال MSDN و غيرها يتم كتابة جملة الاستفسار في مشيد (Constructor ) الكائن (DataAdaptr ) ثم يتم استخدام الوسيلة (Method)

(Fill) لملئ الكائن (DataSet) بمجموعة السجلات الناتجة من الاستفسار

هل هذه هي الطريقة البيدلة للوسيلة (Method)

(Open) في الكائن (RecordSet) في VB 6

و شكرا

#12

بسم الله الرحمن الرحيم

استاذي الفاضل خضر

وجدت في اح مقالات ال MSDN مثال عن كائن يدعى ( CurrencyManager ) و الذي فهمته هو حل للمشكل القديمة الت كانت تواجهنا في ال VB 6 و التي تتعلق بالدوات المرتبطة بقاعدة البيانات ( DBCombo , DBList ..... الخ)

حيت انه يجب تحديد مصدر بيانات () لكل اداة

و هذا الكائن ( CurrencyManager ) يعمل كمرجع عام لمصدر البيانات

و في حالة اختلاف مصادر البيانات ( الجدول) من اداة الى اداة

يتم استخدام اكثر من كائن لذلك ( لست متأكد !!!)

عموما النص هو :

"Understanding the CurrencyManager

It is important that you understand the function of the CurrencyManager object to help you

follow the sample

in this article.

Any data source that you bind to in a Windows Forms control contains an associated

CurrencyManager object.

The CurrencyManager object monitors the position and otherwise supervises bindings

to that data source.

The form contains a CurrencyManager object for each discrete data source to

which you are binding.

If all of the controls on the form bind to a single source (for example,

if several TextBox controls are bound to the same data table),

they share the same CurrencyManager .

When the controls on the form are bound to different sources,

the form contains multiple CurrencyManager objects,

each of which tracks which record or data element the controls are using. "

و شكرا

ارجو ان تفيدنا بالمزيد عنه

#13

بسم الله الرحمن الرحيم

استاذي الفاضل خضر

وجدت في احد مقالات ال MSDN مثال عن كائن يدعى ( CurrencyManager ) و الذي فهمته هو حل للمشكل القديمة التي كانت تواجهنا في ال VB 6 و التي تتعلق بالادوات المرتبطة بقاعدة البيانات ( DBCombo , DBList ..... الخ)

حيت انه يجب تحديد مصدر بيانات () لكل اداة

و هذا الكائن ( CurrencyManager ) يعمل كمرجع عام لمصدر البيانات

و في حالة اختلاف مصادر البيانات ( الجدول) من اداة الى اداة

يتم استخدام اكثر من كائن لذلك ( لست متأكد !!!)

عموما النص هو :

"Understanding the CurrencyManager

It is important that you understand the function of the CurrencyManager object to help you

follow the sample

in this article.

Any data source that you bind to in a Windows Forms control contains an associated

CurrencyManager object.

The CurrencyManager object monitors the position and otherwise supervises bindings

to that data source.

The form contains a CurrencyManager object for each discrete data source to

which you are binding.

If all of the controls on the form bind to a single source (for example,

if several TextBox controls are bound to the same data table),

they share the same CurrencyManager .

When the controls on the form are bound to different sources,

the form contains multiple CurrencyManager objects,

each of which tracks which record or data element the controls are using. "

نهاية الاقتباس

و شكرا

ارجو ان تفيدنا بالمزيد عنه

#14

بسم الله الرحمن الرحيم

استاذي الفاضل خضر

يبدو انك مشغول كثيرا , انا اسف جدا جدا لاني اكثرت عليك الاسئلة

لكن المسألة في غاية الاهمية منتج متوفر منذ نصف عام و لم نستطع تكوين مثال واحد فقط به

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

ان تلعب هذا الدور

1 - الاتصال بقاعدة البيانات يتم في كل اجراء (procedure) و Microsoft

تهلل و توتطبل وتثني على هذه الطريقة الجديدة ارجو ان تكتب لنا عن الفوائد المرجوة من هذه الطريقة

2 - (كما يبدو تم استبدال ( dataEnviroument) بال ( Typed Data) وهي طريقة ( كما فهمت ) تمكنك من التعامل مع كائنات قاعدة البيانات و كأنها اجزاء من لغة VB

مثلا :

messgbox.show MyDataSet.MyTable.Row(0).ID

ارجو ان تشرح لنا كيف يتم ذلك

3 - عملية اضافة و تحديث البيانات تثم من خلا الكائن (DataRow) ثم الكائن (DataTable) ليتم في النهاية تحديثها معن من خلال (** غريب **) الكائن (DataAdaptr) بعد المرور من خلال ال (DataSet)... لماذا ؟

انا تمكنت من الوصول للبيانات من خلال الكائن (DataSet) عن طريق التركيبة

(MyDataSet.Tables("Accounts").Rows(0).Acc_ID.Value )

فهل يمكن تحديث البيانات مباشرة من خلال ال (DataSet)

(بمعنى اخر هل يمكن استخدام ال(DataSet) كـ(RecordSet))

4 - ماذاعن الوسائل (Fill) و (FillSchema) للكائن (DataAdaptr)

5 -( اقتراح ) بخصوص شكل المنتذى لماذا لا يتم تغيير شريط الاخبار ( الذي يتم فيه عرض اهم المواضيع)

من اللون القرمزي الى اللون الازرق الدوبلماسي ( الذي في ال MSDN)

وشكرا جزيلا لرحابت صدرك

تلميذك وسام

#15

بسم الله الرحمن الرحيم

انا اسف جدا يبدو اني زودتها حبتين

بس معليش انت قلبك كبير

;)

بس انت طولت الغيبة

و انا لم ارد لاني كنت معتقد ان المنتدى عاطل او كما فهمت

لكن باين ان المنتدى شغال

فيريت تتكرم و ترد بس علشان اتأكد انك مش زعلان;)

تلميذك وسام نجم

1
#16

مرحبا اخي الكريم ، انا والله ما انتبهت للرسالة لانني مشغول كثير هذه الايام و بازور المنتدى بسرعة.

ربما في الايام القادمة اكتب شيئ عن الموضوع و لكن الانشغال الان ماخذ كل وقت

بالطبع انا لست زعلان ولا حاجة :D

هذا الموضوع مغلق.

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