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

ملفّات مشابهة
السالم عليكم و رحمة هللا شرح ربط قاعدة بيانات Access بال.. C# مذا ستستفيد من هذا الموضوع!! -معرفة طريقة صنع قاعدة بيانات بالAccess -ربط قاعدة البيانات

Microsoft Word - C#2

المحاضرة الثانية

Microsoft Word - Excel VBA

كيفية تفعيل خدمة IIS ونشر موقع ويب على الشبكة احمللي السالم عليكم اصدقائي الكرام في هذا الكتاب سنتناول ما هي خدمة المعلومات وكيفية التفعيل ونشر الموقع

Microsoft Word - Access VBA

How To Make Connection Between Oracle DB Server 9i & Oracle Developer 6i

الفرق بين البرمجة الإجرائية و البرمجة المسيرة بالأحداث :

جامعة حضرموت

مدرسة هارون الرشيد الثانوية للبنين المهارات العملية / تكنولوجيا المعلومات ( الثاني عشر) إعداد/ أ. خالد الح

اختر عنوان مناسب

التاريخ: االمتحان النهائي لمساق برمجة متقدمة תכנות מתקדם موعد أ الزمن: ساعتان فقط الخميس 2017/7/27 )10 عالمات( السؤال األول for او )while الالزمة لما

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

السالم عليكم ورحمة هللا وبركاتة كتاب تعلم برمجة االلعاب بأستخدام محرك االلعاب Unity 3D الكتاب مقدم من االستاذ : عماد عارف التوي موقع : Home OF Games ا

) NSB-AppStudio برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( ) برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( NSB-AppStudio الدرس األول ) 1 ( الدرس

Microsoft Word - SolutionOOPFinal2011.doc

عرض تقديمي في PowerPoint

Microsoft Word - Oracle1

الأول في السي شارب((c#للمبتدائين

دليل الحسابات دل ل الحسابات هو عبارة عن نافذة تحوي شجرة حسابات افتراض ة تضم هذه الشجرة األنواع الثالثة لتصن ف الحسابات وه حسابات ( المتاجرة األرباح وا

Microsoft Word - new.doc

جاهعة الوسيلة هركز الشبكات و أنظوة اإلعالم و االتصال والتعلين الوتلفز و التعلين عن بعد مودل Moodle التعل م نظام استخدام "دل ل االلكترون للطلبة" نظام ا

مكثف الثالثة الوحدة البوابات املنطقية 1 هاتف : مدارس األكاد م ة العرب ة الحد ثة إعداد المعلم أحمد الصالح

تصميم موقــع اخبــاري

عرض تقديمي في PowerPoint

كيفية استخدام موقع 4shared لرفع الملفات وتنظيمها على النترنت للمبتدئين. والمتقدمين في الحاسب. كتاب ل ابراهيم شاهين

Allomani Warehouse User Guide

الدرس : 1 مبادئ ف المنطق مكونات المقرر الرسم عناصر التوج هات التربو ة العبارات العمل ات على العبارات المكممات االستدالالت الر اض ة: االستدالل بالخلف ا

الصف السادس االبتدائي الفصل الدراسي االول بسم هللا الرحمن الرحيم الصفحة محتويات الفصل الدراسي األول الموضو

التحكم في الجهاز عن بعد باستخدام نظام VNC

الدليل التدريبي لتسجيل منتج البوابة االلكترونية للمطابقة )سابر( الدليل التدريبي لتسجيل منتج 0

MS- Access Training 2000

بسم اهلل الرمحن الرحيم الوحدة الثانية الفيجول بيسك Microsoft VISUAL BASIC احلمد اهلل الذي أكرمين و منحين الفرصة لتوفري لكم هذا امللخص املنقى للوحدة ال

برمجة NXT والخوارزميات تتبع الخط سلسلة دروس الروبوت التعل م قسم برمجة NXT والخوارزم ات تتبع الخط )حساس الضوء واأللوان( 1

مادة اثرائية تكنولوجيا الصف الحادي عشر وحدة الوسائط المتعددة شرح برنامج VSDC إلنتاج وحترير الفيديو المشرف التربوي د.عطايا يوسف عابد مديرية التربية وال

Determinants

Banner – Hold Information SOAHOLD

مكونات الحاسب الآلي

مختبر البرمجة والتحليل العددي قسم علوم الجو جمل التحكم والشرط والتكرار المرحلة الثانية PROGRAM CONTROL, CONDITION AND LOOP STATEMENTS الجمل الشرطية :-

عرض تقديمي في PowerPoint

Slide 1

اردوينو – الدرس الثامن – تغيير درجة الالوان لـ RGB LED

دولة فلسطين و ازرة التربية والتعليم العالي المبحث: تكنولوجيا المعلومات / النظري بسم هللا الرحمن الرحيم مدة االمتحان : ساعتان نموذج تجريبي مجموع العالم

الفصل الثاني

WHAT’S NEW

( IP Address ) العنوان الشبكي

عرض تقديمي في PowerPoint

Chapter 1

الفهرس: كيفية ضبط الموبايل/التابلت: خدمة االنترنت معرفة مسبقا على الجهاز. في حالة عدم تعريف خدمة االنترنت مسبقا على الجهاز يمكنك ضبطه يدويا ادخل على D

SQL Server Project 402 Name : Mohammed Ahmed Reyad Mahran NickNameNew : Opreyad36333 NickNameOld : OpMrayed /3/1

الدليل التدريبي لطلب شهادة مطابقة إرسالية )للمنتجات المستوردة( البوابة االلكترونية للمطابقة )سابر( الدليل التدريبي لطلب شهادة مطابقة إرسالية )للمنتجات

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

SP-1101W/SP-2101W eciug niitallatini kciuq 1.0v /

How To Install Oracle Forms & Reports 6i

<4D F736F F D20D8D1EDDEC920CDD0DD20C7E1E1EDE4DFD32E646F63>

Visual Basic.Net كتاب تعليمي للمبتدئيين اعداد / محمد حازم الشميري 1

مشروع إدارة المخازن ((Store Project

Forum.zyzoom.net

الوحدة التاسعة

دليل تدريبي : الحلول لما بعد اختراق الحسابات إعداد : محمد المسقطي Mohammed Al-Maskati بمساعدة : علي السباعي Ali Sibai

وزارة الترب ة بنك األسئلة لمادة علم النفس و الح اة التوج ه الفن العام لالجتماع ات الصف الحادي عشر أدب 0211 / 0212 األولى الدراس ة الفترة *************

1 درس :

السلطة الوطنيـة الفلسطينية

ABU DHABI EDUCATION COUNCIL Abu Dhabi Education Zone AL Mountaha Secondary School g-12 science section Mathematics Student Name:.. Section: How Long i

حفظ واسترجاع الصور في قاعدة البيانات Sql Server بلغة سي شارب

The Global Language of Business دليل ارشادي الستخدام صفحة خدمات الشركات األعضاء Members Area 1

شرح توزيعة Parted Magic السلم عليكم و رحمة ال تعالى و بركاته شرح توزيعة Parted Magic )الصدار الثالث( الفهرس : (1 مقدمة (2 تحميل التوزيعة (

الشريحة 1

المكونات

عربي Sign-Code Website Guide فيما يلي دلي ا ل لطلب اسم مستخدم جديد لConnect Sell من خ لل موقع.Sign-Code يسمح لك الموقع بالدخول اإلداري على اسم المستخد

الشريحة 1

الدوال في اكسل الدوال: هي صيغ معرفة مسبقا تقوم بإجراء عمليات حسابية بإستخدم قيم محددة ووسائط مسماة في ترتيب بنية معينة بناء الدالة: إغالق. يبدأ بناء ا

شرح برنامج استعادة الملفات المحذوفة Recover my files من اعداد : رافاييل يوسف مقدمة: آلنا يعلم ان اجهزة الكومبيوتر قادرة على حفظ الملفات على قرصها الصل

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

Schedule Planner User Guide Target Audience: Students This tool can help you better plan your course schedule by generating a visual representation of

NUBIX for Information Technology

قسم تكنولوجيا الحاسوب والمهن الصناعية

حقيبة الدورة التدريبية التخزين السحابي Google Drive حقيبة المتدربة إعداد املدربة : عزة علي آل كباس Twitter 1438 ه

برمجة متقدمة -1-

الحل المفضل لموضوع الر اض ات شعبة تقن ر اض بكالور ا 2015 الحل المفص ل للموضوع األو ل التمر ن األو ل: 1 كتابة و على الشكل األس. إعداد: مصطفاي عبد العز

ص)أ( المملكة العرب ة السعود ة وزارة الترب ة والتعل م اإلدارة العامة للترب ة والتعل م بمحافظة جدة الب ان النموذج ة ( تعل م عام ) انفصم اندراسي األول ان

Adobe Flex 3

0 Eng.W isam Al- isawi Microsoft PowerPoint

جمعية زمزم للخدمات الصحية التطوعية بإشراف وزارة الشؤون االجتماعية تصريح رقم )411( نظام إدارة الجودة Quality Management System إجراءات الئحة تقنية املع

مشروع المكتبات الرقمية

ITEC PD-DT3-User Manual-Arabic V2

برنامج المساعدات المادية الذكي خطوات التقديم للمساعدة المادية...2 خطوات رفع المستندات المرفوضة...10 خطوات التاكد من حالة الطلب

جامعة العقيد الحاج لخضر - باتنة - 1 كلية العلوم االقتصادية والتجارية وعلوم التسيير قسم التعليم األساسي مادة II دروس وتطبيقات الرياضيات لطلبة السنة األ

جامعة عجلون الوطن ة Ajloun National University كلية إدارة األعمال الخطة الدراسية لنيل درجة في الماجستير تخصص إدارة اإلعمال

c1

Full Mark الفرعين : األدبي والفندقي السياحي الوحدة : األولى النهايات واالتصال إعداد وتصميم األستاذ : خالد الوحش مدرسة أبو علندا الثانوية للبنين

تحذيرات قبل التركيب قم بفصل التيار الكهربي عن كاميرا الشبكة فور ا بمجرد ظهور الدخان أو انبعاث رائحة غريبة منها. أبعد كاميرا الشبكة عن الماء. إذا كانت

vb4arab

أساسيات البرمجة بلغة الجافا

النسخ:

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

أساسيات التعامل مع قواعد البيانات ف هذا الفصل سنخطو معا الخطوة األولى نحو التعامل مع قواعد الب انات من خالل ASP.NET وذلك بهدف بناء مواقع د نام ك ة المحتوى. سنقوم بالبدا ة بإنشاء قاعدة ب انات بس طة وملئها ببعض الب انات لتطب ق تمار ن هذا الفصل عل ها, ح ث سنتعلم ك ف ة عرض الب انات من الجدول على صفحة االنترنت, كما سنتعلم ك ف ة تطب ق عمل ات اإلضافة والحذف والتعد ل على الب انات من خالل األكواد البرمج ة. إنشاء قاعدة بيانات سنقوم بالبدا ة بإنشاء قاعدة ب انات بس طة من النوع SQL Server وذلك لنتمكن من تطب ق تمار ن هذا الفصل عل ها, ابدأ بإنشاء موقع جد د, ثم من القائمة File اختر New File ثم اختر SQL. Add ثم اضغط على MyDatabase.mdf و سمها Server Database ستظهر رسالة تخبرك بأنه س تم وضع قاعدة الب انات ضمن المجلد App_Data.) Yes( اضغط على نعم

وبالتال ستجد ف القسم Solution Explorer أنه تم إضافة المجلد App_Data وبداخله قاعدة الب انات. MyDatabase ننقر عل ها نقرا مزدوجا ل تم االنتقال إلى القسم. Server Explorer ننقر نقرة م ن ة على المجلد Tables ونختار Add New Table, ونض ف الحقول بالشكل التال : Column Name Id Name Mark Data Type int Nvarchar(50) int Allow Nulls No No Yes ونحدد الحقل Id كمفتاح أساس ف الجدول, و تم ذلك عبر نقرة م ن ة على السهم الصغ ر على سار الحقل Id واخت ار Set Primary Key كما هو واضح ف الصورة التال ة :

كما نقوم بجعل هذا الحقل أخذ ق مه بشكل تلقائ ( وذلك لتجنب إدخال ق م مكررة لحقل المفتاح األساس ) ح ث نقوم بتفع ل الخاص ة Is Identity التابعة للحقل Id كالتال :. MyTable نقوم بحفظ الجدول السابق ( من القائمة File نختار Save Table1 نجري نقرة م ن ة على هذا الجدول ونختار Show Table Data ) ونعط ه االسم

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

Microsoft SQL Server Microsoft SQL Server Express Microsoft Access Oracle DB2 MySQL وفضال عما سبق ف مكن التعامل مع أي قاعدة ب انات عالئق ة باستخدام األداة. SqlDataSource إذا فإن هذه األداة ه جسر للوصول للب انات و تم استخدامها مع أدوات أخرى لعرض وتحر ر الب انات مثل GridView, FormView وغ رهم. تعتبر األداة SqlDataSource غ ر مناسبة عند إنشاء تطب قات متعددة الطبقات multi-tier وذلك ألنها تدمج طبقة الب انات مع طبقة العرض, وف هذه الحالة نقوم باستخدام األداة ObjectDataSource والت سنناقشها بالتتفص ل ف فصل الحق. إنشاء االتصال بقاعدة البيانات بشكل افتراض فإن األداة SqlDataSource معدة للتعامل مع قواعد الب انات Microsoft SQL. ADO.NET االفتراض لها ) Provider ( اإلصدار السابع ومابعد, و كون البروفا در Server قم بإضافة صفحة جد دة إلى الموقع, ثم أضف عل ها األداة SqlDataSource وذلك من القسم Data ضمن ال. ToolBox نضغط على السهم الصغ ر لألداة ( SqlDataSource و دعى )Smart Tag, ونضغط على Configure Data Source كما هو واضح ف الصورة التال ة : تظهر لنا نافذة الخت ار قاعدة الب انات الت نر د االتصال بها, نختار القاعدة, MyDatabase

وبهذا نكون قد حددنا مصدر الب انات, إن هذه الخطوة تكافئ كتابة الكود التال : كود #C DataSource=.\SQLEXPRESS;AttachDbFilename= DataDirectory \MyDatabase.mdf;Integrated Security=True;User Instance=True والذي سنناقشه الحقا. نضغط على, Next تظهر نافذة لنقرر إن كنا نر د تخز ن هذه االتصال وما االسم الذي نر د أن نسم ه به, نختار االسم MyConnectionString ثم نضغط على Next

تظهر نافذة جد دة وف ها الجداول الموجودة ف قاعدة الب انات, ح ث س تم عرض الجدول الوح د الموجود ف القاعدة الت أنشأناها, نترك اإلعدادات كما ه ونضغط على. Next

تم عبر النافذة السابقة تحد د الب انات الت س تم جلبها من قاعدة الب انات, ف القسم األول نحدد إن كنا سنستقبل الب انات من إجراء مخزن Stored Procedure أو عبارة SQL نقوم ببنائها باستخدام Views أما الخ ار الثان وهو االفتراض, ف قوم بعرض الجداول والمناظ ر, Query Builder الموجودة ف قاعدة الب انات ل تم جلب الب انات منها. ف القسم الثان من النافذة نحدد الجدول أو المنظور المطلوب ثم نختار األعمدة الت نر د جلبها. ف القسم الثالث نالحظ وجود عدة خ ارات, إن تفع ل الخ ار Return only uniqe rows ؤدي إلى عدم حدوث تكرار ف الب انات المسترجعة هذا إن كان مصدر الب انات حتوي على أسطر مكررة ( عموما إن وجودة مفتاح أساس ضمن عدم تكرار ب انات الجدول ), الزر WHERE لتحد د شرط تم تطب قه على الب انات وبالتال تم إرجاع األسطر الت تحقق هذا الشرط. مثال السترجاع ب انات الطالب الذ ن حصلوا على عالمة أكبر من, 08 نضغط على الزر WHERE لتظهر لنا النافذة التال ة :

ح ث نقوم بالبدا ة بتحد د العمود الذي س تم تطب ق الشرط عل ه, ثم نحدد معامل الشرط ( ساوي, ال ساوي, أكبر, أصغر... ), ثم نحدد مصدر الق مة الت س تم استخدامها ف الشرط ( مثال من ملف cookies أو غ ر ), عند اخت ار None توجب عل نا إدخال ق مة ثابتة وبشكل مباشر وذلك ضمن الحقل. Value بعد تحد د جم ع أقسام عبارة Where نضغط على الزر Add لتتم إضافة ذلك الشرط. ( إن الب انات المحددة ف الصورة السابقة تقوم بإرجاع ب انات الطالب الذ ن حصلوا على عالمة أكبر أو تساوي ) 08. نغلق هذه النافذة لنعود إلى النافذة Configure Data Source. الزر ORDER By وذلك لترت ب الب انات المسترجعة حسب عمود ما, مثال استرجاع ب انات الطالب مرتب ن أبجد ا حسب االسم.

Descending ترت ب تنازل. Ascending تعن ترت ب تصاعدي سواءا كان رقم أو أبجدي, نغلق هذه النافذة لنعود إلى النافذة. Configure Data Source الزر Advamced لتفع ل إمكان ة إضافة وتعد ل وحذف الب انات من وإلى المصدر المحدد.

ال تقم بتفع ل الخ ار ن السابق ن ف هذا المثال, نغلق هذه النافذة لنعود إلى النافذة Configure Test Query ثم ف النافذة الت تل ها اضغط على Next ونضغط على الزر. Data Source لنتأكد من نجاح االتصال مع قاعدة الب انات ثم اضغط على. Finish وبهذا نكون قد أنه نا إعداد األداة SqlDataSourec وأصبحت بمثابة وس ط لالتصال مع قاعدة الب انات وجلب المعلومات منها وتنف ذ األوامر عل ها كما سنرى ف فقرات الحقة, ولكنها التقوم بعرض الب انات بمفردها. نفتح الكود الصفحة السابقة, جب أن كون مشابها للكود التال : كود ASP.net <div> </div> <asp:sqldatasource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" SelectCommand="SELECT * FROM [MyTable]"></asp:SqlDataSource>

نالحظ من الكود السابق أن الخاص ة ConnectionString MyConnectionString ولكن أ ن تم تخز ن عبارة االتصال هذه قد أخذت الق مة تم تخز ن إعدادات االتصال ضمن الملف web.config وذلك لعدة أسباب : األمن و الحما ة. سهولة التعامل : بالتأك د فإن إضافة عبارة االتصال ضمن ملف واحد أسهل بكث ر من إضافتها إلى كل صفحة ضمن الموقع, وبالتال عندما نر د إجراء تعد ل ما عل ها فإننا نعدل ف مكان واحد فقط. األداء : ح ث ساهم تخز ن عبارة االتصال ف الملف web.config بأداء أفضل لمجمع االتصاالت على الس رفر ( Pool ) Connections. نفتح الملف web.config لنجد ف ه الكود التال : كود XML <configuration> <connectionstrings> <add name="myconnectionstring" connectionstring="data Source=.\SQLEXPRESS;AttachDbFilename= DataDirectory \MyDatabase.mdf;Integrated Security=True;User Instance=True" providername="system.data.sqlclient" /> </connectionstrings> <system.web> <compilation debug="false" targetframework="4.0" /> </system.web> </configuration> إن عبارة االتصال السابقة معدة للعمل فقط على الجهاز المحل, Local و جب تعد لها عند رفع الموقع على االنترنت, ح ث تقوم شركة االستضافة تزو دك بعبارة االتصال وفقا إلعداداتهم الخاصة. قم بإضافة أداة GridView إلى الصفحة الت أنشأناها مسبقا, واجعل ق مة الخاص ة DataSourcrId= sqldatasource1, قم بتنف ذ الصفحة ل تم عرض ب انات الجدول ضمن األداة ( GridView والت سنتطرق للتعامل معها بالتفص ل ف فصل الحق ).

فلترة البيانات تدعم األداة SqlDataSource خاص ة الفلترة FilterExpression والت تمكننا من تحد د شرط ما على الب انات الت نرغب بالحصول عل ها من قاعدة الب انات, وهذا ماندعوه بالفلترة, بالعودة إلى الصفحة السابقة, وعلى فرض أن عدد الطالب أصبح كب را وأنت بحاجة للبحث عن طالب مع ن فك ف نقوم بذلك عبر الخاص ة FilterExpression ما سنقوم بعمله هو صفحة مشابهة للصفحة التال ة, ح ث قوم المستخدم بكتابة اسم طالب ما ضمن األداة TextBox1 ثم الضغط على زر " بحث " ل تم عرض ب انات الطالب الذ ن حملون ذلك االسم. أنشئ صفحة جد دة, قم بإضافة أداة TextBox1 و, Button1 أضف أداة SqlDataSource كما تعلمنا ف الفقرة السابقة, انتقل إلى وضع الكود وقم MyTable واربطها مع الجدول باإلضافات التال ة : كود ASP.net <div> <asp:sqldatasource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" SelectCommand="SELECT * FROM [MyTable]" FilterExpression="Name LIKE '{0}%'" > <FilterParameters> <asp:controlparameter Name="stdName" ControlID="TextBox1" PropertyName="TEXT" />

شرح الكود المضاف : </FilterParameters> </asp:sqldatasource> /> "بحث"= Text <asp:button ID="Button1" runat="server" <asp:textbox ID="TextBox1" runat="server"></asp:textbox> <br /> </div> قمنا ف البدا ة بإضافة خاص ة الفلترة FilterExpression وأعط ناها الق مة : {0} LIKE Name وهو عبارة عن تعب ر, SQL الخت ار األسماء المشابهة للبارامتر الممرر )أي عمل ة فلترة على أساس االسم ), أما الرمز {0} ف دل على رقم البارامتر الذي س تم استخدامه ( ح ث بدأ الترق م ابتداءا من الصفر ). قمنا بعد ذلك بتحد د البارامتر ( وهو الق مة المدخلة ف ) TextBox1 ح ث صرحنا بالبدا ة عن قسم بارامترات عبر الوسم <FilterParameters> ثم قمنا بإضافة بارامتر من النوع أداة تحكم وإعطائه االسم stdname ثم قمنا بتحد د األداة الت سنأخذ منها البارامتر وه TextBox1 وتحد د الخاص ة المعن ة وه. Text أخ را, قم بإضافة األداة GridView واجعل ق مة الخاص ة DataSourceId تساوي الق مة, SqlDataSource1 قم بتنف ذ الصفحة, واكتب حرف ما ثم اضغط على الزر بحث ل تم عرض جم ع الطالب الذ ن تبدأ أسماؤهم بذلك الحرف, جرب كتابة اسم طالب بالكامل وابحث. مالحظة ف الصفحة السابقة قمنا بتحد د نوع البارامتر على أنه أداة تحكم <asp:controlparameter.. وذلك ألننا سنقوم بكتابة البارامتر ضمن أداة تحكم )وقد كانت )TextBox, وجد العد د من أنواع البارامترات األخرى والت تمكننا من أخذ ق مة البارمتر من ملف Cookies أو من ملف الجلسة Session أو من عنوان الصفحة QueryString وخ ارات أخرى وسنتحدث عنها ف فصول الحقة إن شاء هللا. العمليات التي تدعمها األداة SqlDataSource تدعم األداة SqlDataSource العمل ات األربع األساس ة الت تم تنف ذها على الب انات : إضافة, حذف, تعد ل, اخت ار. وذلك عبر الخصائص التال ة : InsertCommand DeleteCommand UpdateCommand SelectCommand

سنقوم بتطب ق مثال بس ط للتعرف على الخصائص السابقة, أضف صفحة جد دة وأضف عل ها أداة SqlDataSource وقم بربطها مع الجدول MyTable كما تعلمنا ف الفقرة السابقة, ولكن قم بتفع ل الخ ار Generate Insert, Update, and Delete statements كما ف الصورة التال ة ثم نكمل باق الخطوات كالمعتاد, بعد ذلك صبح كود الصفحة بالشكل التال : كود ASP.net <div> <asp:sqldatasource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" DeleteCommand="DELETE FROM [MyTable] WHERE [Id] = @Id" InsertCommand="INSERT INTO [MyTable] ([Id], [Name], [Mark]) VALUES (@Id, @Name, @Mark)" SelectCommand="SELECT * FROM [MyTable]"

UpdateCommand="UPDATE [MyTable] SET [Name] = @Name, [Mark] = @Mark WHERE [Id] = @Id"> <DeleteParameters> <asp:parameter Name="Id" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:parameter Name="Id" Type="Int32" /> <asp:parameter Name="Name" Type="String" /> <asp:parameter Name="Mark" Type="Int32" /> </InsertParameters> <UpdateParameters> <asp:parameter Name="Name" Type="String" /> <asp:parameter Name="Mark" Type="Int32" /> <asp:parameter Name="Id" Type="Int32" /> </UpdateParameters> </asp:sqldatasource> </div> ح ث نالحظ إضافة عبارات SQL الخاصة بعمل ات اإلضافة الحذف والتعد ل واالستعالم من الجدول المحدد وإسناد كل عبارة للخاص ة المقابلة لها ف األداة, SqlDataSource كما ظهر التصر ح عن البارامترات الت جب تمر رها لعبارات, SQL فعندما نر د حذف سجل ما من الجدول كف تمر ر Id ذلك السجل, ولذلك فإن القسم <DeleteParameters> حتوي على بارامتر واحد فقط, أما عندما نر د إضافة سجل جد د فنحن بحاجة لكامل الق م وه ف مثالنا هذا ثالث ق م ( Mark ) Id, Name, ولذلك تم تمر ر ثالث بارامترات لعبارة اإلضافة Insert وذلك ضمن القسم <InsertParameter>. لرؤ ة ك ف ة عمل الخصائص السابقة نقوم بإضافة األداة DetailsView إلى الصفحة ونضبط خصائصها كالتال : الخاص ة DataSourceID AutoGenerateDeleteButton AutoGenerateEditButton AutoGenerateInsertButton AutoGenerateRows AllowPaging الق مة SqlDataSource1 True True True False True

ال تقلق من األداة DetailsView فسنأت على شرحها وبالتفص ل ف فصل قادم إن شاء هلل. إنما الهدف من اسخدامها هنا فقط لتوض ح عمل خصائص األداة, SqlDataSource بعد ضبط ق م الخصائص السابقة كما هو محدد بإمكاننا تنف ذ الصفحة وتجربة إضافة سجالت جد دة على الجدول وحذف والتعد ل على سجالت سابقة. أما كود الصفحة ف صبح كامال بالشكل التال : كود ASP.net <div> <asp:sqldatasource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" DeleteCommand="DELETE FROM [MyTable] WHERE [Id] = @Id" InsertCommand="INSERT INTO [MyTable] ([Id], [Name], [Mark]) VALUES (@Id, @Name, @Mark)" SelectCommand="SELECT * FROM [MyTable]" UpdateCommand="UPDATE [MyTable] SET [Name] = @Name, [Mark] = @Mark WHERE [Id] = @Id"> <DeleteParameters> <asp:parameter Name="Id" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:parameter Name="Id" Type="Int32" /> <asp:parameter Name="Name" Type="String" /> <asp:parameter Name="Mark" Type="Int32" /> </InsertParameters> <UpdateParameters> <asp:parameter Name="Name" Type="String" /> <asp:parameter Name="Mark" Type="Int32" /> <asp:parameter Name="Id" Type="Int32" /> </UpdateParameters> </asp:sqldatasource> <asp:detailsview ID="DetailsView1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" AutoGenerateInsertButton="True" AutoGenerateRows="False" AllowPaging="True" DataKeyNames="Id" > <Fields> <asp:boundfield DataField="Id" HeaderText="Id" ReadOnly="True" SortExpression="Id" /> <asp:boundfield DataField="Name" HeaderText="Name" SortExpression="Name" /> <asp:boundfield DataField="Mark" HeaderText="Mark" SortExpression="Mark" /> </Fields> </asp:detailsview> </div>

قم بتنف ذ الصفحة السابقة, وجرب إجراء العمل ات المختلفة على الب انات, قم بتعد ل المثال السابق واستخدم األداة GridView عوضا عن. DetailsView التعامل البرمجي مع قواعد البيانات من النقاط الهامة عند بناء موقع د نام ك ه معرفة إدارة قواعد الب انات بشكل برمج, على العموم فإن الكود البرمج س كون مألوف لمبرمج تطب قات.NET, سأكتف خالل هذه الفصل بعرض مثال ن األول عن ك ف ة اإلضافة لقاعدة الب انات, والثان االستعالم عن الب انات, وبالتال س كون بإمكان المطور أن كتب توابع التعد ل والحذف وغ رها بسهولة كب رة فالموضوع تعلق بلغة SQL أكثر من تعلقه بتقن ة ال.NET سنقوم بإضافة صف جد د ( Class ), من القائمة File اختر New ثم ( File أو ببساطة اضغط على ) CTRL+N, ثم حدد Class وقم بتسم ته Students.vb ( Students.cs لمبرمج الف جوال ب سك ). ستظهر رسالة تخبرك بأنه س تم وضع الصف الجد د داخل مجلد دعى App_Code فاضغط على نعم, هذا الصف الجد د س حتوي على التوابع الت تقوم بالتعامل مع قواعد الب انات, ح ث من األفضل عدم كتابتها ف كود الصفحة. الخطوة األولى تكون ف استدعاء فضائات العناو ن المسؤولة عن التعامل مع قواعد الب انات.

كود #C using System.Data; using System.Data.SqlClient; using System.Configuration; كود VB Imports System.Data Imports System.Data.SqlClient Imports System.Configuration إن فضاء العناو ن System.Configration إعدادات الموقع والتعامل مع ملف اإلعدادات مع قاعدة الب انات. ل س للتعامل مع قواعد الب انات, إنما ستخدم لضبط. web.config والذي حتوي على عبارة االتصال نقوم بته ئة بان الصف ل صبح الكود بالشكل التال : كود #C using System; using System.Data; using System.Data.SqlClient; using System.Configuration; public class Students { SqlConnection con; SqlCommand mycommand; string connectionstring; } public Students() { con = new SqlConnection(); connectionstring = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; con.connectionstring = connectionstring; mycommand = new SqlCommand(); mycommand.connection = con; }

كود VB Imports System.Data Imports System.Data.SqlClient Imports System.Configuration Public Class Students Private con As SqlConnection Private mycommand As SqlCommand Private connectionstring As String Public Sub New() con = New SqlConnection() connectionstring = ConfigurationManager.ConnectionStrings("MyConnectionString").ConnectionString con.connectionstring = connectionstring mycommand = New SqlCommand() mycommand.connection = con End Sub End Class ح ث إن عبارة االتصال مع قاعدة الب انات MyConnectionString الملف. web.config جب أن تكون مخزنة ف كود XML <configuration> <connectionstrings> <add name="myconnectionstring" connectionstring="data Source=.\SQLEXPRESS;AttachDbFilename= DataDirectory \MyDatabase.mdf;Integrated Security= True;User Instance=True" providername="system.data.sqlclient"/> </connectionstrings>.. </configuration>

باإلمكان االستعانة باألداة SqlDataSourse لتقوم بتخز ن عبارة االتصال ف الملف السابق دون عناء كتابتها بشكل دوي كما تعلمنا ف فقرات سابقة. نقوم اآلن بكتابة التابع المسؤول عن إضافة الب انات إلى الجدول MyTable بالشكل التال : كود #C public string addstudents(string stdname, int stdmark) { try { string mysql = "insert into mytable(name,mark) values ( @sname, @smark )"; mycommand.parameters.clear(); mycommand.parameters.addwithvalue("@sname", stdname); mycommand.parameters.addwithvalue("@smark", stdmark); mycommand.commandtext = mysql; } con.open(); int recs; recs = mycommand.executenonquery(); con.close(); return recs + " row added successfuly."; } catch (Exception ex) { if (con.state!= ConnectionState.Closed) con.close(); return ex.message; } كود VB Public Function addstudents(byval stdname As String, ByVal stdmark As Integer) As String Try Dim mysql As String = "insert into mytable(name,mark) values ( @sname, @smark )" mycommand.parameters.clear() mycommand.parameters.addwithvalue("@sname", stdname) mycommand.parameters.addwithvalue("@smark", stdmark) mycommand.commandtext = mysql con.open() Dim recs As Integer recs = mycommand.executenonquery() con.close() Return recs & " row added successfuly." Catch ex As Exception

If con.state <> ConnectionState.Closed Then con.close() End If Return ex.message End Try End Function اآلن أصبح بإمكاننا إنشاء الصفحة الت تقوم باستدعاء التابع السابق. أضف صفحة جد دة و أضف عل ها أدات ن من النوع TextBox و زر واحد ( Button ) وأداة Lable واحدة, وف حدث النقر على الزر اكتب الكود التال : كود #C protected void Button1_Click(object sender, EventArgs e) { Students std = new Students(); string name=textbox1.text; int mark=int.parse(textbox2.text); string result= std.addstudents(name, mark); Label1.Text = result; } كود VB Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click End Sub Dim std As New Students() Dim name As String = TextBox1.Text Dim mark As Integer = Integer.Parse(TextBox2.Text) Dim result As String = std.addstudents(name, mark) Label1.Text = result ح ث قمنا بإنشاء غرض std من الصف Students ثم قمنا بتنف ذ التابع addstudents نبق كود الصفحة خال ا من األكواد الت تتعامل بشكل مباشر مع قاعدة الب انات. وبهذا كود الصفحة :

كود ASP.net <div> Nmae : <asp:textbox ID="TextBox1" runat="server" /> <br /> Mark : <asp:textbox ID="TextBox2" runat="server" /> <br /> <asp:button ID="Button1" runat="server" Text="add" onclick="button1_click" /> <hr /> <asp:label ID="Label1" runat="server" Text="" /> </div> قم بتنف ذ الصفحة و راقب قاعدة الب انات. مكن تنف ذ عمل ات التعد ل و الحذف بشكل مشابه جدا للتابع السابق مع فرق تغ ر عبارات ال. SQL نعود اآلن إلى الصف Students لكتابة تابع قوم باالستعالم من قاعدة الب انات, ح ث نمرر له رقم الطالب كبارامتر و ع د لنا العالمة الت حصل عل ها. كود #C int getstudentmark(string stdid) { int mark = -1; try { string mysql= "select mark from MyTable WHERE id = @id "; mycommand.parameters.clear(); mycommand.parameters.addwithvalue("@id", stdid); mycommand.commandtext = mysql; } con.open(); SqlDataReader dr; dr = mycommand.executereader(); while (dr.read()) { mark = int.parse(dr.getvalue(0).tostring()); } con.close(); } catch (Exception ex) { if (con.state!= ConnectionState.Closed) con.close(); } return mark;

كود VB Private Function getstudentmark(byval stdid As String) As Integer Dim mark As Integer = -1 Try Dim mysql As String = "select mark from MyTable WHERE id = @id " mycommand.parameters.clear() mycommand.parameters.addwithvalue("@id", stdid) mycommand.commandtext = mysql con.open() Dim dr As SqlDataReader dr = mycommand.executereader() While dr.read() mark = Integer.Parse(dr.GetValue(0).ToString()) End While con.close() Catch ex As Exception If con.state <> ConnectionState.Closed Then con.close() End If End Try Return mark End Function اترك لك عز زي المطور إنشاء الصفحة الت تقوم باستدعاء التابع السابق. الخاتمة إلى هنا نأت إلى نها ة هذا الفصل, والذي خطونا به الخطوة األولى نحو قواعد الب انات ضمن ب ئة الدوت نت, وجد العد د من األدوات الجاهزة والمخصصة للعمل مع قواعد الب انات مثل GridView و FormView وغ رهم العد د, و سنناقش كل منهم بشكل مفصل خالل الفصول القادمة إن شاء هللا. لتحم ل جم ع أجزاء هذه السلسلة المتوفرة حتى اآلن : https://www.mediafire.com/folder/u44z9omx9ajjv/asp.net http://www.4shared.com/folder/i34_lco0/asp.html m-hajjkhalaf@hotmail.com http://www.facebook.com/mohammed.hajkhalaf محمد عمر الحاج خلف سور ا للتواصل :