السلام عليكم ورحمة الله بركاته
|
|
- ساهر بديرية
- منذ 5 سنوات سابقة
- المشاهدات:
النسخ
1 ھديتي المتواضعة لكم ھي عن القادم الجديد (نسبيا) LINQ رغم انه توجد مواضيع عديدة غنية عن ھذه التقنية فالمانع من التنوع.واحب ان اذكركم بأني مجرد ھاو للبرمجة تتواضع معرفتي ومعلوماتي امام االساتذة والمحترفين و االعضاء في ھذا المنتدى فإن اخطأت أرجو منكم أن تصححوا خطأي وسأكون لكم ممنونا. فال أريد أن أعرض معلومات خاطئة ألخوتي العرب.ويترتب على كوني ھاو ايضا فترات من االنقطاع المفاجئ نتيجة ظروف عملي. سأضع سلسة من المقاالت بلغة سھلة مبسطة عن تقنية LINQ to SQL وانا انشرھا بالتزامن في منتدى اخر صديق من اجل ان يعم النفع.. والمقاالت تحتوي ارشادات عملية لبناء برنامج لتطبيق LINQ على ارض الواقع وقد اخترت التعامل مع قواعد بيانات SQL Server Compact ألن ادوات انشائھا وتطويرھا مضمنة ومتوفرة لكل مستخدم للفيجوال بيزيك ٢٠٠٨ باالضافة لدعمھا لتقنية LINQ مباشرة. وما ينطبق عليھا ينطبق على نسختي. Enterprise و Express نبدأ باسم الله... مقدمة : مقدمة عن LINQ ما ھي LINQ باختصار LINQ ھي مجموعة تعليمات جديدة للتعامل مع البيانات بكافة اشكالھا واينما كانت List,DataSet,DataBase,Array etc) ( وھي شديدة الشبه ب SQL التي نعرفھا جيدا ولكن الفرق أن SQL تتعامل مع كائنات قاعدة البينات كالجداول مثال مباشرة بينما LINQ تتعامل مع كائنات فيجوال بيزيك (كالمجموعات Collections و المصفوفات ( Arrays بعبارة أخرى : عبارات SQL تترجم وبالتالي يتم تدقيقھا على مستوى قاعدة البينات Engine) (... اما عبارات LINQ فھي تترجم وتدقق على مستوى. Visual Basic وھذا احد جوانب قوة. LINQ من DAO إلى : LINQ وفي مسيرة تطور التعامل مع البيانات فإن LINQ االن في قمة الھرم. فقد بدأنا قديما مع DAO المملة والبطيئة..ثم بھرتنا ADO بكائناتھا المتخصصة وقدرتھا على التعامل مع معظم مصادر البيانات بنفس الكائنات مستفيدة من OLE DB..ثم LINQ to DataSet بالمزود ADO.NET واخيرا تم تغليف OOP للتطوير ودعم.NET التي تبنت منصة ADO.NET و اتاحة LINQ to SQL للتعامل المباشر مع قواعد بيانات SQL Server وتوسيع LINQ لتشمل كافة انواع البيانات objects) و XML و ( SQL كما سنرى فھي البديل األمثل للتعامل مع البيانات. وكما سبق ان حدث عندما قدمت لنا مايكروسوفت ADO ظل كثير من المبرمجين متمسكين ب DAOو RDO..سنجد أن كثيرا من المبرمجين الزالوا يحجمون عن LINQ ويفضلون ADO.net والضير في ھذا فانا رغم حماسي الشديد ل LINQ ال ازال الجأ احيانا لكائنات ADO.ولكن اؤكد لكم LINQ ستفرض نفسھا بقوة. لماذا اترك ما تعلمته وجربته واتجه لما يسمى LINQ حسنا اذا لم تكن من مستخدمي LINQ فانت بحاجة الى تعلم لغتي برمجة!!!...نعم االولى ھي visual basic.net والثانية ھي... SQL يجب أن تعرف قواعد الكتابة كل منھما و اخطاء كل منھما وعند حدوث خطأ منطقي (نتيجة غير متوقعة ( ستراجع اوال برنامجك في الفيجوال ثم ستذھب لتجربة عدة عبارات SQL في قاعدة بياناتك و تعود لتنسخ عبارة SQL المناسبة وتضعھا في برنامجك لتكتشف أن ھناك خطأ في كتابة اسم حقل فتعود لترى اسم الحقل الصحيح وتصححه ثم تكتشف ان جملة SQL التلبي احتياجك وتضطر لمراجعة ملفات المساعدة للبحث عن دالة SQL تقوم بالعمل وتتمنى لو أن كل العمل في نفس الصفحة حيث التضطر للمغادرة والتقصي والبحث من اجل اسم جدول او عمود أو دالة ستتمنى لو ان كل شيء امامك كما اعتدت في بيئة الفيجوال ليقوم المحرر بتقديم الكائنات لك لتنقتي منھا كما اعتدنا في الفيجوال او ما يسمى بخاصية IntelliSense ولكن الواقع غير ذلك...يجب ان تحفظ قاعدة بياناتك وجداولھا و اعمدتھا وانواع بيانات اعمدتھا عن ظھر ١
2 قلب وعالقاتھا... وآآآآآآه من العالقات فانت بحاجة اللف سطر من INNER JOIN في SQL لتمثيل العالقات.. واذا كنت تتعامل مع اكثر من نوع قواعد بيانات فستنكب على الكتب واالنترنت تتعلم ميزات لغة SQL لھذا النوع...ماذا بعد..ھل ھذه حالك طبعا أل... فانت من النوع االخر الذي يستخدم ادوات الفيجوال التي تعلم الكسل والمسماة "السحرة "Wizards - والسحرة دائما خبثاء - فانت التتعب كثيرا والمعالج يقوم بكل شيء فانت مستعد لتتحداني انه يمكنك كتابة برنامج كامل للتعامل مع قاعدة البيانات بدون أي سطر كود وبدون LINQ ووجع راسھا...!!! نعم اصدقك ولكن جرب ان تنقل برنامجك لجھاز اخر.. أو ان تكتب برنامجا حقيقيا وليس تعليميا أو تجريبيا..اكاد اجزم انك ستحتاج للتعامل للبيانات من خالل الكود..وستصبح من اصحاب النوع األول. اليك الحل... استخدم... LINQ سھلة بسيطة سريعة وقوية...وستبقى بعد االنتھاء من تصميم بنية قاعدة بيناتك في فيجوال بيزيك ولن تحتاج لمغادرته وال الستخدام المشعوذين ) أقصد Wizards فھي تأتي باالنكليزية بمعنى ساحر ( ألن الفيجوال سيقوم بتلقينك ما تريد كتابته وفوق ھذا سيخبرك ھو ببنية قاعدة البينات وايضا سيمثل لك العالقات خير تمثيل حيث تصل للعالقة المطلوبة بنقطة فقط (.)..تخيلوا اربع اسطر Inner Join ستصبح اربع نقاط!! واما االخطاء فانتھى عھد ان تعمل فحص اين اضع Double!.. وما ھو مقابل int32 وماذا اعمل ب Null...فالراعي الرسمي ل LINQ..السيد IntelliSense سيقوم بالعمل ويوبخك اذا اخطأت ھكذا اخطاء... لم تقتنع... الظاھر ان اسلوبي لم يعجبك... ساستخدم اسلوب اكثر تقليدية... للسيد المحترم القارئ نقدم لكم مزايا :LINQ التعامل مع كائنات قواعد البينات ككائنات برمجية ) جدول Customer يصبح مجموعة Customers ١- ( Collection أي احضارھا للبرنامج وبالتالي تفعيل خاصية IntelliSense الرائعة. استخدام دوال Functions فيجوال بيزيك االعتيادية مع البيانات بدال مع دوال SQL.مع ان جماعة مايكروسوفت ٢- اضافت دوال جديدة شديدة الشبه بدوال. SQL واجھة واحدة للتعامل مع البيانات اينما كانت سواء بالذاكرة او بقواعد بيانات Oracle او.SQL Server ٣- لست بحاجة الستخدام SQL ومعرفة فروقاتھا بين محركات قواعد البيانات المختلفة. ٤- تصيد األخطاء في االستعالمات يتم قبل الترجمة واثناء كتابة الكود. ٥- تمثيل العالقات Foreign keys بشكل مجموعات فرعية Sub-Collections كما سترون الحقا. ٦- اذا لم تقتنع بعد ھذا اعتبرھا شيء جديد يثير الفضول وجربھا يا اخي. ٧- ھل سنبدأ بالكالم المفيد حسنا اطلت الشرح واالقناع سأشرح قليال انواع مزودات LINQ لتنتقي ما يناسبك. : LINQ to SQL مختصة بالتعامل مع قواعد بيانات SQL Server بكافة انواعھا وباختصار اداة ترجمة قوية الستعالماتك إلى استعالمات SQL ترسل من تحت الطاولة دون علمك لقاعدة البيانات. واھم ما يعجبني فيھا أنني استطيع استخدام أي دالة Function في جملة Where حتى دالة من تعريفك. ونحن كما ذكرت لكم سنتعامل مع ھذا المزود من خالل قاعدة بيانات. المضمنة في VS 2009 SQL Server Compact : LINQ to Object مختصة بالتعامل مع كائنات فيجوال بيزيك مثال استعالم لمصفوفة Array او لمجموعة Collection أو قائمة List أي شيء يدعم الواجھة.IEnumerable Interface : LINQ to XML لجماعة مبرمجي الويب خاصة وبيانات XML حيث ال أعرف عنھا الكثير فاتركھا للمختصين فأنا اتعقد من منظر األقواس <> يذكرني بالدوس وايامه السوداء. : LINQ to DataSet ويمكن استخدام ھذا المزود لقواعد البيانات األخرى غير SQL Server.مثال Access أو Oracle أو MySqL..ألخ ھو طريقة لاللتفاف على عدم دعم LINQ المباشر لھذه المحركات.فنحضرھا إلى متناول استعالمات LINQ قسرا باستخدام DataSet القادرة على احضار أي قواعد بيانات. وللعلم فأن LINQ to ADO.Net تطلق على كل من ) sql linq to و linq to dataset و (linq to entities والتقلقوا فالمبدأ نفسه واذا تعلمت استعالمات أي مزود ستتعلم استعالمات البقية ولكن التنويع الختالف بنية البيانات في كل مزود. بحمدالله انتھت المقدمة وسأبدأ في المقاالت التعليمية حيث في المقالة القادمة كيفية انشاء برنامج يدعم. SQL to LINQ ٢
3 اليوم األول بناء برنامج يدعم LINQ to SQL السالم عليكم ورحمة الله وبركاته سأبدأ من األلف إلى الياء وذلك للمبتدئين في استخدام LINQ خطوات عمل البرنامج: ١. انشاء برنامج جديد فارغ من نوع. Application Windows Form ٢. إضافة و تصميم قاعدة البيانات عن طريق. Explorer Server ٣. انشاء فئات العمل ل LINQ عن طريق SQLMetal ٤. تطبيق استعالمات LINQ للتعامل مع الباينات ( عرض-حذف-اضافة-تعديل( طبعا الخطوة األولى سھلة وال تحتاج لشرح... وبعد انشاء البرنامج سيظھر لك نموذج وحيد Form1 اتركه كماھو ونبدأ بالخطوة الثانية... بناء وتصميم قاعدة البيانات النشاء قاعدة بيانات جديدة : نذھب للقائمة Project ونختار Add New Item و ثم نختار Local قاعدة بيانات ونسميھا اي اسم. فيظھر معالج االتصال بقاعدة البيانات اضغط Cancel ألننا ال نريد انشاء. DataSet سنجد ملف الداتا قد اضيف لنافذة Solution Explorer نضغط عليه فيفتح لنا ServerExplorer ثم نضيف الجداول لقاعدة البيانات وننشيء العالقات االزمة. إضافة قاعدة بيانات موجودة : وللسھولة ساستخدم قاعدة بيانات NorthWind.sdf الشھيرة حيث نختار من قائمة Projectثم Add Existing Item ثم تضيف ملف NorthWind.sdf التي تجدھا في المجلد : C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Samples وسيظھر معالج االتصال بقاعدة الباينات فنضغط. Cancel االن ھذه الخطوة مھمة لكل قواعد البيانات المحلية : حيث أن الفيجوال ينشيء قاعدتي بيانات احدھما في مجلد البرنامج والثانية للتنفيذ في مجلد Debug وبالتالي فعندما نقوم باضافة بيانات اثناء تنفيذ البرنامج نتفاجأ انھا اختفت عندما نستعرض البيانات في server explorer لذلك نقوم بالتالي : من نافذة المشروع Solution Explorer اختار ملف قاعدة البيانات وفي الخصائص عدل الخاصية Copy to Output Directory إلى. Do not Copy االن نحفظ المشروع تمھيدا للخطوة الثالثة انشاء فئات العمل مع LINQ ما ھي فئات العمل مع LINQ ھي مجموعة فئات تمثل قاعدة البيانات بكافة جداولھا واعمدتھا على شكل كائنات يمكن التعامل معھا بسھولة من داخل ٣
4 البرنامج فھي باختصار تقوم بتغليف كائنات قاعدة البيانات وتقدمھا للمستخدم بشكل واضح وسھل كما اعتدنا مع جميع فئات.Net وھذا يؤدي لتقليل االخطاء بالبرنامج وتقليل الكود الالزم للتعامل مع البيانات. ان البيئة المثالية النشاء فئات العمل ھي O/R Designer ولكن ال اعلم لماذا لم تضف ماايكروسوفت دعم قواعد بيانات SQL CE له!! وبالتالي سنستخدم البرنامج البديل وھو SQLMetal.exe وھو يأتي مع الفيجوال: اوال نغلق البرنامج ونذھب للمجلد C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin ١. ثم ننسخ الملف SQLMetal.exe إلى مجلد البرنامج الذي فيه ملف. Northwind.sdf ٢. نبقى في مجلد برنامجنا وننشئ اختصار جديد لملف SQLMetal.exe الذي نسخناه ٣. نفتح خصائص االختصار الذي انشأناه وفي خانة ) Target الھدف ( نضع بعد اسم البرنامج االوامر التالية :. ٤ /namespace:northwind /code:northwind.vb /Language:vb /pluralize NorthWind.sdf للتوضيح أكثر تصبح خانة الھدف كالتالي : "C:\Users\Muhannad\Documents\Visual Studio 2008\Projects\SampleLINQ\SampleLINQ\SqlMetal.exe" /namespace:northwind /code:northwind.vb /Language:vb /pluralize NorthWind.sdf واالن نقوم بتشغيل ملف االختصار ستظھر نافذة موجه االوامر للحظات ثم تختفي وسنجد أنه لدينا ملف جديد في المجلد اسمه NorthWind.vb وھو المطلوب. نفتح مشروعنا ونختار من قائمة Project اضافة الملف Add existing Item و نذھب لمجلد البرنامج ونضيف ملفنا الجديد. NorthWind.VB بقي خطوة أخيرة حيث يتطلب اضافة refrence للبرنامج ل.. System.Data.Linq الطريقة لم ال يعرف من قائمة Project ثم Add refrence ثم تحت عالمة.NET ستجد System.Data.Linq أضفھا للمشروع..٥.٦.٧ مالحظة ھامة : يجب اعادة انشاء ملف الفئات عند أي تغيير في تصميم قاعدة البيانات مثال اضافة جدول جديد أو أعمدة جديدة لجدول موجود وعندھا التحتاج اال لتشغيل االختصار السابق وانتبه أن التكون قاعدة البيانات مفتوحة في مكان اخر كالفيجوال مثال. وقد أضفت البرنامج الذي تم انشاءه في ھذا اليوم بشكل رابط لمن يريد اختصار الوقت والتطبيق مباشرة :.LinqSample االن اصبحنا جاھزين الستخدام LINQ To SQL في برنامجنا وسأبدأ قريبا بالخطوة الھامة الرابعة وھي التطبيقات وھي التي ستكشف لكم مدى سھولة و قوة تعبيرات LINQ ان شاء الله. مع التحية ٤
5 اليوم الثاني البدء في استخدام LINQ في الموضوع السابق انشأنا برنامجا يرتبط بقاعدة بيانات NorthWind.sdf أنشأنا فئات عمل Linq باستخدام SQLMetal ولمن يريد االستفادة من الدرس يفضل انشاء البرنامج حسب الدرس السابق ألنني سأمزج بين المعلومات النظرية والتطبيق العملي مباشرة في كافة المراحل. االن ساتطرق للموضوع المھم وھو التعامل مع LINQ بعد انتھينا من بناء الفئات باستخدام. SQLMetal ان الفئات التي تشكلت لدينا ھي صلتنا بقاعدة البيانات فبعد االن اصبح كل سجل بقاعدة اليينات ممثل بكائن وكل مجموعة سجالت ممثلة ب - List أو بنية تشبھھا باالحرى - مثال الجدول Customers االن نصل اليه عن طريق الكائن Customers والذي يحتوي على كائنات من نوع Customer التي انشأھا لنا SQLMetal وستجد لكل فئة من نوع Customer خصائص ھي عبارة عن أعمدة الجدول Customer وعند الشرح العملي ستتضح الصورة أكثر. االن في البرنامج ضع اداة DataGridView على كامل الفورم حيث سنستخدمھا لعرض نواتج تجاربنا مع استعالمات. Linq الخطوة األولى الستخدام LINQ TO SQL ھو انشاء الكائن DataContext والذي مھمته تأمين االتصال بقاعدة البيانات وطبعا نحن لن ننشئ ھذا الكائن مباشرة انما ھناك الفئة Northwind التي انشأھا لنا SQLMetal والتي ھي اصال مشتقة من DataContext وبالتالي سننشئ كائن من ھذه الفئة كمتغير محلي Field في الفورم. تحت كلمة. Public Class Public Class Form1 Dim MyDB As New NorthWind.NorthWind("Northwind.sdf") طبعا تالحظ انا كتبنا NorthWind.NorthWind وذلك ألننا عند انشاء الفئات sqlmetal طلبنا منه أن ينشئ نطاق لألسماء Namespace باسم NorthWind فالبد للوصول لفئاتنا استخدام ھذا النطاق قبلھا. االن اصبحت كل البيانات في متناول يدك وسنبدأ بتجربة اكواد مختلفة لنتعرف على استعالمات LINQ أكثر ونقول وداعا الستعالمات SQL وكود ADO.Net الممل والمكرر. استعالمات LINQ بشكل عام استعالمات LINQ اما تبدأ ب From وتعيد مجموعة سجالت أو ب Aggregate وتعيد عندھا قيمة واحدة وساقوم بترجمة كل استعالم نستخدمه الستعالم SQL المقابل له ليسھل فھمه. اوال: استعالمات : From صيغتھا العامة المبسطة ٥
6 From element In collection [Where condition] Select elements[vars] وفي مثالنا تصبح Collection تصبح MyDB التي تمثل قاعدة البينات كاملة وطبعا ما بين اقواس مربعة ھو اختياري. االن سنضع جملة from بسيطة في الحدث Form_Load لتعرض البيانات في. DataGridView Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub MyDB.Log = Console.Out Dim mysource = From cust In MyDB.Customers Select cust DataGridView1.DataSource = mysource نفذ البرنامج وسترى الجدول Customers كامال لديك. ولقد اضفت العبارة MyDB.Log = Console.Out حيث ستكتب لك في نافذة Output ما يتم ارساله لقاعدة البينات وسترى انھا استعالمات SQL المعروفة فھذه ھي وظيفة LINQ to SQL ترجمة ما نكتبه لقاعدة البيانات والتنسى ان تلقي نظرة على نافذة Outputبعد كل استعالم. أعود لالستعالم السابق بامكانك اعتبار cust سجل فترجمته لعبارة مفھومة ھو "لكل سجل نفترض ان اسمه cust في مجموعة السجالت MyDB.Customers اعطني " cust يعني كل السجالت ومقابله ب : SQL SELECT * FROM Customers اما ناتج االستعالم mysource فھو نوع مجھول Annonymous Type والتشغل بالك كثيرا به فالتطبيقات البسيطة ل LINQ التحتاج لمعرفة قوية بھذه االنواع.يمكنك اعتبار الناتج مجموعة تحتوي كائنات من نوع.Customer وناتج االستعالم يمكنك االستفادة منه بعدة طرق مثال في المثال السابق استخدمناه ك. Data Source أو يمكنك التنقل خالله من خالل حلقة For..Each مثال : For Each mycust In mysource Console.WriteLine(mycust.ContactName) Next أو اخذ اول سجل منه فقط واستعراض بيناته مثال... Dim FirstCust = mysource.first Console.WriteLine(FirstCust.CompanyName, FirstCust.ContactName, FirstCust.City, FirstCust.Address) ٦
7 وكل ما ينطبق على (T List(of ينطبق عليه.. وفوق ذلك يمكن االستعالم عنه في جملة From جديدة..مثال Dim LondonCust = From x In mysource Where x.city = "London" Select x وبامكانك ان تضع ناتج االستعالم LondonCust كمصدر DataSource للداتا جريد. الحظ اثناء كتابتك لالستعالمات السابقة أن Visual BASIC يقترح عليك العناصر و الحقول ويصحح لك األخطاء وھذا سبب قولي أن استخدام استعالمات LINQ اسھل واصح من استخدام استعالمات SQL فالمجال مع Linq لخطأ التعرف ما ھيته ترسله لك قاعدة البينات وتحتار في امره.ويكون سببه بسيط كاختيارك لنوع بيانات خاطئ مثال String بدال من Integer فھنا المحرر سيخبرك بالخطا مباشرة. نعود لبعض التطبيقات وساسرد ھنا استعالم LINQ وقم انت باستبداله في حدث Form_Load وشاھد النتيجة وبعده ساذكر استعالم SQL المقابل ولسھولة فھم االستعالمات ساكتب كل بداية كلمة محجوزة في سطر باستخدام _. Dim mysource = From cust In MyDB.Customers _ Select cust.contactname, cust.city SQL : SELECT ContactName,City FROM Customers Dim mysource = From cust In MyDB.Customers _ Select cust.contactname, cust.city SQL : SELECT ContactName,City FROM Customers Dim mysource = From cust In MyDB.Customers _ Where cust.city = "London" Select cust.contactname, cust.contacttitle, cust.address SQL : SELECT ContactName, ContactTitle, Address FROM Custemers WHERE City='London' Dim mysource = From ord In MyDB.Orders _ Where ord.customer.city = "London" _ Select ord.orderdate,ord.orderid,ord.customer.contacttitle SQL : SELECT Orders.[Order Date],Orders.[Order ID], Customers.[Contact Title] FROM Orders INNER JOIN Customers ON Customers.[Customer ID] = Orders.[Customer ID] WHERE Customers.City = 'London' الحظ االستعالم االخير أن العالقات ممثلة بشكل مجموعة كائنات فكل كائن Order يحتوي على كائن Customer يمثل العالقة بين Customer ID في الجدولين وھذه طريقة ذكية وسھلة لتمثيل العالقات خاصة العالقات المتشابكة بين عدة جداول حيث كنت سابقا اكتب اكثر من جملة Inner Join في االستعالم. وطبعا يمكنك استخدام الكلمات ٧
8 المحجوزة التالية مع االستعالمات Distinct,Order By,Like واقترح عليك ان تجرب ما يقترحه عليك المحرر وتحاول بناء جمل استعالماتLINQ اكثر تعقيدا لتعتاد على استخدامھا. الى لقاء قريب.حيث ساتطرق ل Aggregate و استعالمات اكثر تعقيدا. ٨
9 اليوم الثالث : اليوم سنكمل مشوارنا مع استعالمات LINQ ولن ادخل بكل تفاصيل الكلمات المحجوزة لالستعالمات ثانيا : استعالمات Aggregate تتميز بانھا تعيد قيمة واحدة ألحد دوال التجميع Aggregation Sum مجموع القيم Average المعدل الحسابي Count عدد القيم Min أصغر قيمة Max أكبر قيمة. وھي سھلة االستخدام مثال أضف الكود التالي لبرنامجنا في أي مكان تريد... Dim CustomerCount = Aggregate cust In MyDB.Customers Into Count() 'SQL : SELECT Count(*) From Customers Dim OrderSum = Aggregate ord In MyDB.Orders Into Max(ord.OrderDate) 'SQL : SELECT Max([Order Date]) FROm Orders Console.WriteLine("Custuomers Count: {0} Type : {1} ", CustomerCount, TypeName(CustomerCount)) Console.WriteLine("Max Order Date Count: {0} Type : {1} ", OrderSum, TypeName(OrderSum)) وقد اضفت جملة SQL الموافقة بعد االستعالم وكما تالحظ فإن استعالمات Aggregate تعيد قيمة واحدة دائما ونوع متغير ناتج االستعالم سيكون أحد انواع DataType وليس مجموعة Collection كما اعتدنا.كما يمكن ان يحتوي استعالم From على تجميع باستخدام Aggregate العالقات في : LINQ TO SQL طبعا جميعنا يعرف العالقات وفائدتھا. ومع استخدام Linq اصبح لدينا تطبيق سھل ووصول جيد لكافة كائنات قاعدة البيانات... وكما سبق فإننا نستخدم قاعدة بيانات NorthWind ولذلك قبل الخوض في عالقاتھا ھذه صورة توضح بنية العالقات فيھا طبعا كما ذكرت انشاء العالقات وحفظھا في قاعدة البيانات قبل انشاء الفئات باستخدام sqlmetal يسھل بناء استعالماتنا بشكل كبير حيث يقوم باني الفئات ) sqlmetalأو ( O/R designer بتضيمن العالقات وتقديمھا لنا ٩
10 بطريقة برمجية ككائنات. مثال من الشكل السابق لنفرض أنني اريد معرفة فقط اسماء وارقام المنتجات التي شحنت الى ايطاليا. سيكون عندھا استعالم LINQ بھذه البساطة : From det In MyDB.OrderDetails _ Where det.order.shipcountry = "Italy" _ Select det.product.productid, det.product.productname Distinct ھذا في حالة ترجمة العالقات في الفئات. أما اذا لم يتم انشاء العالقة في قاعدة البيانات فانت بحاجة ل Join ويصبح االستعالم نفسه كالتالي : From det In MyDB.OrderDetails _ Join ord In MyDB.Orders On ord.orderid Equals det.orderid _ Join prd In MyDB.Products On prd.productid Equals det.productid _ Where ord.shipcountry = "Italy" _ Select prd.productid, prd.productname Distinct وطبعا نظير االستعالمين السابقين في SQL ھو : SELECT DISTINCT Products.[Product Name] FROM [Order Details] INNER JOIN Orders ON [Order Details].[Order ID] = Orders.[Order ID] INNER JOIN Products ON [Order Details].[Product ID] = Products.[Product ID] WHERE (Orders.[Ship Country] = 'Italy' والنتيجة أن عالقة واحد إلى كل أو ما تسمى Foreign Key حيث يكون ھناك جدول مفتاح اساسي Primary-) ( Key مثل جدول Customers و جدول اخر يحتوي المفتاح الفرعي Foreign-Key) ( الذي يشير للمفتاح االساسي تكون ممثلة في فئات Linq to SQL بشكل : (كل كائن من جدول Primary-Key له مجموعة من كائنات جدول ( Foreign-Key والعكس غير صحيح (كل كائن من جدول Foreign-Key ممثل بكائن وحيد من جدول ( Primary-Key وھذه الجمل صحيحة مھما تشعبت العالقات كما شاھدنا بالمثال السابق. وھذه الميزة لھا عيوب عند التعامل مع كمية كبيرة من البيانات حيث سيتم تحميل الجدول المطلوب مع عالقاته والكائنات الفرعية مما يشكل حمال على الذاكرة والمعالج وھذا يمكن التحكم به من خالل Load Options للكائن DataContext كما سنرى الحقا. االستخدامات االساسية لالستعالمات : بناء مصدر بيانات : Data Source كما رأينا سابقا في المقال الثاني يمكن استخدام أي استعالم Linq كمصدر بيانات ألي عنصر تحكم لعرض البيانات وھناك مالحظة مھمة بالنسبة الستعالمات Linq وھي أن أي مجموعة استعالمات تعيد نفس القيمة أو السجل أو نفس مجموعة السجالت تؤشر لنفس الكائن حتى لو كانا استعالمين مختلفين. فقد تتفاجأ عند وضع مصدر بيانات ل.datagrid من نفس الجدول أنه عند تحريك االختيار في الكومبو تتحرك المؤشرات في DataGrid و combobox التجميع : Grouping باستخدام Group By حيث يتم فرز السجالت على شكل مجموعات مستقلة وفقا لمعيار معين.لنفرض أنني ال أريد عرض جدول Products بالكامل وانما اريده بطريقة منسقة ومجمعة حسب Category عندھا نلجأ ل group By From pro In MyDB.Products _ Group pro By pro.categoryid Into CatGroup = Group ھنا يصبح ناتج االستعالم عبارة عن مجموعتين بشكل شجري بالتالي نحن بحاجة لحلقتين For Each للتجوال عبر جميع السجالت الحلقة األولى األولى تعيد مجموعة CatGroup والحلقة الثانية تتجول في ھذه المجموعة كالتالي : Dim mysource = From pro In MyDB.Products _ Group pro By pro.categoryid Into CatGroup = Group ١٠
11 For Each grp In mysource Console.WriteLine("Category ID = {0}", grp.categoryid) For Each prod In grp.catgroup Console.WriteLine("Product Name: " & prod.productname) Next Next واالستخدام االخر األكثر شيوعا للتجميع ھو مع الدوال التجميعية مثال اذا اردنا أن نجد عدد الطلبيات orders لكل موظف Employee سنستخدم االستعالم التالي : From ord In MyDB.Orders _ Group ord By ord.employeeid Into EmpGroup = Group _ Select EmployeeID, OrdersCount = EmpGroup.Count() Take و Skip معھا لتعطينا جزء من المجموعة مثال للحصول على اخر ١٠ الترتيب : باستخدام Order By ويمكن استخدام طلبيات نستخدم االستعالم : From ord In MyDB.Orders _ Select ord Order By ord.orderdate Descending _ Take 10 Linq to تصفية السجالت : وھو باستخدام الكلمة Where وبعدھا قيمة منطقية و ٩٠ % من القيم المنطقية والدوال مقبولة بالنسبة. Linq والحقا سأعطي أمثلة للدوال واستخدامھا بطريقة سھلة مع SQL ونصيحتي لكل متعلم جديد ل LINQ جرب ثم جرب ثم جرب كل صيغ االستعالمات الممكنة.لكي تأخذ مرونة في التعامل... وإلى اللقاء مع المقال القادم الذي سيكون عن تعديل البيانات واضافة وحذف البيانات مع. Linq والسالم... اليوم الرابع ١١
12 تعديل وتحديث البيانات السالم عليكم كمدخل لمفاھيم تعديل وتحديث البيانات أحب أن اذكر الجميع بأننا في Linq أصبحنا نتعامل مع كائنات وبالتالي مفھوم تحديث البيانات ھو عبارة عن تعديل لخصائص ھذه الكائنات والمجموعات أو حذف أو اضافة كائنات ثم يقوم مزود Linq to SQL بتحويل تعديالتنا إلى جمل SQL يتم ارسالھا لقاعدة البيانات. أوال إضافة البيانات : ١- إضافة البيانات لجدول واحد : نقوم أوال بانشاء نسخة من كائن الجدول ) مثال Customer أو ( Category ثم نسند القيم للحقول المطلوبة ونستخدم الكائن DataContext إللحاق البيانات بقاعدة البيانات والميزة الجميلة أن LINQ يقوم لوحده بتحديث بقية الحقول التي لم ندخلھا لقيمھا الجديدة. مثال الكود التالي يضيف بيانات لجدول الفئات Categories فيNorthWind ثم يعرض قيمة ID للفئة الجديد. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim MyDB As New NorthWind.NorthWind("Northwind.sdf") MyDB.Log = Console.Out Dim mycat As New NorthWind.Category With mycat.categoryname = "Arabicaa".Description = "Arabs" End With MyDB.Categories.InsertOnSubmit(myCat) End Sub MyDB.SubmitChanges() MsgBox("new ID : " & mycat.categoryid) التنسى أن تلقي نظرة على نافذة. Output ٢ -إضافة البيانات لجداول مترابطة :Master/Details غالبا ما نحتاج ادخال المستخدم إلضافة البيانات لعدة جداول مرتبطة مثال عند ادخال العميل لفاتورة ما نحتاج إلدخال البيانات في جدول الفواتير ثم نضيف تقاصيل كل فاتورة في جدول التفاصيل... وفي قاعدة Northwind لنفرض أننا نريد إدخال منتجات Products جديدة تتبع لفئة جديدة..ما سنقوم به ھو انشاء كائن جديد من نوع Category وسنجد في خصائصه تلقائيا مجموعة Products فنضيف لھا ما نحتاجه من منتجات و نرسل التغييرات لقاعدة البيانات.وھذا مثال الكود : Dim mycat As New NorthWind.Category With mycat.categoryname = "Arabicooo".Description = "Arabians".Products.Add(New NorthWind.Product With _ {.ProductName = "AAAAAA",.Discontinued = False}).Products.Add(New NorthWind.Product With _ {.ProductName = "BBBBBB",.Discontinued = False}).Products.Add(New NorthWind.Product With _ {.ProductName = "CCCCCC",.Discontinued = False}) End With MyDB.Categories.InsertOnSubmit(myCat) MyDB.SubmitChanges() MsgBox("CategoryID ID : " & mycat.categoryid & " My Products : " & _ mycat.products.count)
13 والحظ أننا لم نضع CategoryID في كودنا ألن Linq to SQL سيتكفل باحضارھا. واذا القيت نظرة على نافذة Output ستجد أن كودنا السابق تمت ترجمته لخمسة جمل SQL األولى إلضافة فئة جديدة Category والثاني للحصول على CategoryID للفئة الجديدة و الثالث البقية إلضافة المنتجات Product الجديدة. ثانيا تعديل البيانات : اذا فھمت الفقرة السابقة فالتالي أسھل باختصار طريقة التعديل. ) أحضر الكائن المطلوب..عدله...أرسله ( مثال لنعدل أحد المنتج السابق الذي أضفناه المسمى CCCCCC ليصبح اسمه XXXXX ھذا الكود Dim myproduct = From pro In MyDB.Products _ Where pro.productname = "CCCCCC" Select pro If myproduct.count > 0 Then myproduct.first.productname = "XXXXXX" MyDB.SubmitChanges() ثالثا حذف البيانات : ايضا بنفس الطريقة السابقة : أحضر الكائن ثم احذفه ثم أخبر القاعدة (قاعدة البيانات طبعا...) وھذا كود لحذف المنتج : XXXXX Dim myproduct = From pro In MyDB.Products _ Where pro.productname = "XXXXXX" Select pro If myproduct.count > 0 Then _ mydb.products.deleteonsubmit(myproduct.first) MyDB.SubmitChanges() ولحذف كل ما اضفناه في األكواد السابقة لقاعدة بيانات Northwind حيث سنحذف Category التي تبدأ ب Arab ومنتجاتھا بھذا الكود : Dim mycat = From cat In MyDB.Categories _ Where cat.categoryname Like "Arab*" Select cat If mycat.count > 0 Then For Each cat In mycat MyDB.Products.DeleteAllOnSubmit(cat.Products) Next End If MyDB.Categories.DeleteAllOnSubmit(myCat) MyDB.SubmitChanges()
14 رابعا :نطاق العمليات : Transactions اعتدنا دائما إلنشاء برنامج يعتمد عليه أن نستخدم عن تغيير البيانات كائنات Transaction خاصة عند حدوث خطأ ما أثناء ادخال بيانات مترابطة فيجب الغاء العملية برمتھا..فليس من المعقول أن نسجل الفاتورة مثال ناقصة بعض االغراض. وبالنسبة ل Linq To SQL فھي تدعم Transaction داخليا فعند أي استدعاء ل SubmitChanges سيقوم مزود Linq تلقائيا بانشاء Transaction خاص بھذا االستدعاء حيث ولدى حدوث أي خطأ فإن عملية تحديث البيانات سيتم الغائھا تلقائيا.. جرب ھذا الكود أن Category المقصودة الزالت موجودة. ) حيث تعمدت أن أولد خطأ عن طريق حذف كائن من Category مرتبط بكائنات من Product وھذا ال تسمح به قاعدة البيانات حيث يجب حذف الطرف اآلخر من العالقة ). Dim mycat = From cat In MyDB.Categories Where cat.categoryid = 2 MyDB.Categories.DeleteAllOnSubmit(myCat) Try MyDB.SubmitChanges() Catch ex As Exception MsgBox("Error!! all changes canceled") End Try ويمكن تعديل الكود السابق بحيث نتتبع الخطأ و نعالجه في جملة Catch ثم نستدعي SubmitChanges مرة أخرى. وھناك طريقة أخرى عن طريق خاصية Transaction للكائن DataContext حيث بامكاننا استخدام نطاق RollBack وستكون كل العمليات التي ستتم ضمن ھذا النطاق واذا عملنا ADO.net من كائنات Transaction ستلغى كل التغييرات. بھذا ينتھي مقال اليوم..امل أن يكون مفيدا للجميع.. إلى لقاء مع الموضوع القادم الذي سيكون عن ميزة رائعة يمكن االستفادة منھا في Linq وھي Extensions..وايضا سنلقي نظرة أعمق على الكائن. DataContext والسالم...
15 اليوم الخامس توسعة الوظائف Extensions إن كل نوع بيانات أو فئة في VB2008 له مجموعة من الدوال كما اعتدنا مثال ) String,Integer,List ( ونحن نستخدم ھذه الوظائف بشكل اعتيادي في كل برامجنا.. ولكن ماذا لو احتجنا لتوسيع ھذا النوع ليحتوي وظائف جديدة نحتاجھا في البرنامج.. سابقا كنا ننجز ھذا العمل باشتقاق فئة جديدة و اضافة الوظائف لھا ولكن اآلن يمكننا بسھولة إضافة وظيفة أو أكثر لنوع بيانات باستخدام. Extensions في Linq ھذه الميزة أحيانا تغنينا عن كتابة أكواد كثيرة ومتكررة لتحقيق ھدف معين.. لنفترض أننا نريد الحصول على مجموع حقول نصية لعدة سجالت... لن نجد دالة تجمع في Linq أو في SQL تحقق الھدف المطلوب ولذلك سننشيء دالتنا الخاصة ونلحقھا بنوع الحقل الذي نريد تعديله لتصبح كبقية دوال التجميع (Sum,Count ) جزء من نوعنا. ترجمة للكالم السابق : مھمتنا الحالية ھي انشاء دالة (وظيفة ( نسميھا JoinNames تقوم بعرض مجموعة حقول نصية بشكل حقل نصي واحد مفصول بفواصل. وسيكون مثالي من قاعدة بيانات NorthWind عرض الفئات Categories بحيث يكون بجانب كل سجل من Category مجموعة المنتجات Products التي تخص ھذه الفئة مفصولة بفواصل. فالنوع المطلوب توسعته ھنا ھو Product وباألصح مجموعة Product يعني بلغة البرمجة IEnumerable( of Product) الكود كالتالي بكل بساطة : Imports System.Runtime.CompilerServices Public Module Ext <Extension()> Public Function JoinNames(ByVal ProductList As IEnumerable(Of NorthWind.Product)) As String Dim Names = From pro In ProductList Select pro.englishname Dim NamesString = String.Join(",", Names.ToArray) Return NamesString End Function End Module االن لنستخدم ھذه الدالة الجديدة في مثالنا و نعرضھا في : datagrid Dim mysource = From cat In MyDB.Categories _ Let ProductsNames = cat.products.joinnames _ Order By cat.categoryname _ Select Number = cat.categoryid,name =cat.categoryname, _ Products = ProductsNames DataGridView1.DataSource = mysource ١٢
16 خصوصية الكائنات و تفردھا مع : Linq to SQL نظرةأعمق على DataContext ان الكائن DataContext كما ذكرنا سابقا ھو وسيط اتصال Linq To SQL مع قواعد البيانات فھو الذي يترجم ما نعمله بالكائنات إلى جمل. SQL وايضا من مھماته التحكم باحضار البيانات والتحقق منھا!! كيف ذلك!! لكي اليحدث تضارب بالبيانات وألسباب أخرى فإن DataContext اليكرر وجود نفس البيانات... المعنى أنه لو استدعيت نفس مجموعة السجالت في مكانين مختلفين وبطريقتين مختلفتين فسيكون لديك في الذاكرة نفس المجموعة من السجالت!! وھذا مثال : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ''Ado.net Objects Dim con As New SqlServerCe.SqlCeConnection("Data Source = Northwind.sdf") Dim com1 = con.createcommand com1.commandtext = "Select Top (1) * From Categories Where [Category ID] = 3" con.open() Dim Cat1 = com1.executeresultset(sqlserverce.resultsetoptions.none) Dim Cat2 = com1.executeresultset(sqlserverce.resultsetoptions.none) con.close() ''LINQ to SQL DataContext Dim MyDB As New NorthWind.NorthWind("Northwind.sdf") MyDB.Log = Console.Out Dim mycat = From catg In MyDB.Categories _ Where catg.categoryid = 3 Select catg Dim Cat3 = mycat.first Dim Cat4=MyDB.Categories.Where(Function(cat) cat.categoryid = 3).First التساوي فحص '' Console.WriteLine("Cat1,Cat2 are Equals? " & Cat1.Equals(Cat2)) Console.WriteLine("Cat3,Cat4 are Equals? " & Cat3.Equals(Cat4)) End Sub نحن تعودنا في ADO,Net أن يكون الكائتنين مختلفين رغم أنھما متساويين بالمحتويات جرب الكود السابق وسترى أن كائني resultset متساويين ) للتذكرة كائن ResultSet مثل DataReader ولكنه قابل للكتابة ( ما أھمية ذلك من ذلك نسنتنج أن تنتبه عند أجرائك تعديالت على الكائنات فحتى الكائنات التي كنت تعتقد أنھا تحتفظ بالقيم األصلية قبل التعديل ستكون قد تعرضت للتغير من قبل. datacontext ما الحل خذ ھذ القاعدة و طبقھا دائما في Linq to SQL مالحظة ھامة : ١٣
17 دائما انشئ كائن جديد DataContext الستعالماتك يعني التعامله مثل Connection وتصنع كائنا واحدا لكل التطبيق انما اجعله كائنا على مستوى االجراء أو الوظيفة Procedure Level كما في جميع امثلتي السابقة اذا الحظتم. التحميل من قاعدة البيانات : عندما نكتب استعالما ما من استعالمات Linq to SQL فإننا النقوم فعليا اال بتعريف االستعالم وقولبة المتغيرات الستقبال نتائج االستعالم. ويتم تنفيذ االستعالم ) أي ترجمته لجملة SQL وارسالھا لقاعدة البيانات ( لعرض النتائج عند الحاجة لذلك ويمكنك ان تالحظ ذلك بمشاھدة نتائج نافذة OutPut اذا كنت وضعت السطر MyDB.Log = Console.Out مثال اذا كتبنا السطر التالي Dim mycat = From catg In MyDB.Categories Select catg فھو عبارة عن تعريف االستعالم وتنفيذه الفعلي يتم عندما يحتاج البرنامج للبيانات وذلك أما بحلقة For Each أو عند استدعاء األمر ToList أو عند اسناده ل datasource جرب كتابة كود لذلك وتتبع تنفيذ البرنامج بوضع. SQL و سترى متى يتم عرض جملة BreakPoint فإذا أردنا أن يتم التنفيذ فورا فقط حول السطر السابق إلى ما يلي Dim mycat = (From catg In MyDB.Categories Select catg).tolist والحالة األخرى التي يتم فيھا ارسال جملة SQL ھي عند اعتماد التغييرات باستخدام. SubmitChanges وأما بالنسبة للكائنات الفرعية ) أي المرتبطة بالعالقات ( فھناك عدة خيارات : تحميل الكائنات الفرعية عند الحاجة لذلك : وھو الخيار االفتراضي وھنا تكون خاصية ObjectrackingEnabled معينة للقيمة True وھنا يتم تحميل أي كائن فرعي (جدول مرتبط ( عند اللزوم. تحميل الكائنات األساسية فقط : عندھا يتم تحميل الكائنات األساسية فقط واليتم تحميل الكائنات الفرعية وذلك باسناد القيمة False للخاصية.ObjectrackingEnabled وتصبح البيانات للقراءة فقط!!. التحكم بتحميل الكائنات : وذلك عن طريق خيارات التحميل Load Options فنتحكم نحن بما يتم تحميله من قاعدة البيانات مع كل كائن. مثال بامكاننا أن نخبر DataContext أنه عند تحميل مجموعة Orders أن يحمل مع كل كائن Order مجموعة OrdersDetails و ھنا فإن DataContext يرجع لخاصية ObjectTrackingEnabled لمعرفة ما إذا كان يجب تحميل بقية الكائنات الفرعية أم ال. لتوضيح األمر أكثر سأناقش ھذه الحاالت الحقا ثم أعرض مثال توضيحي. وقبل ذلك فإن طريقة استخدام LoadOptions كالتالي : لنفترض أنني أريد تطبيق المثال في األسطر السابقة أي تحميل كل كائن Orders مع كائن : OrdersDetails Dim MyDB As New NorthWind.NorthWind("Northwind.sdf") MyDB.Log = Console.Out LoadOptionsانشاء آاي ن '' Dim myopt As New System.Data.Linq.DataLoadOptions تحديد ما نريد تحميله من العلاقات للكاي ن ''Order myopt.loadwith(of NorthWind.Order)(Function(o As NorthWind.Order)o.OrderDetails) ١٤
18 ربط الخيارات السابقة مع '' DataContext MyDB.LoadOptions = myopt قد يتسائل شخص ما ما فائدة ذلك لنترك كل شي كما ھو افتراضيا وندع DataContext يطلب الكائنات التي نحتاجھا!! وجوابي ھو : افترض أن لديك دالة تكرارية تستدعي كائنات Orderو OrderDetails فسيكون الناتج لدينا حوالي ١٠٠ استعالم sql سيرسل لقاعدة البيانات بينما بامكانك تحديد تحميل OrderDetails مباشرة مع الكائن Orders وعندھا لن يرسل لقاعدة بياناتك سوى استعالم واحد جرب ذلك والحظ الفرق في األداء.(كثيرون يشتكون من أداء Linq والسبب ھو أن كودھم يواصل ارسال االستعالمات ويقتل األداء. OutPut اآلن لنوضح كل ما ذكرناه سابقا بمثال عملي... ومثالي ھذا الكود وھو اليعمل شيئا سوى تحميل كائنات من قاعدة البيانات ولكن تتبع تنفيذه و راقب نافذة لترى مايحدث توضيح الخطوات موجود مع الكود : Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 1 تجربة '''''''''''''''' Dim MyDB1 = CreateDataContext() الطب عند الكاي نات تحميل تمكين'' MyDB1.ObjectTrackingEnabled = True لوجود مباشرة الاستعلام تنفيذ سيتم ''First نافذة من البيانات لقاعدة إرساله يتم الذي الاستعلام الخطوة في راقب هنا ''OutPut Dim Q1 = (From ord In MyDB1.Categories Select ord).first ترى آما اخر استعلام تنفيذ تم هنا'' Dim Q2 = (From prod In Q1.Products Select prod).tolist آاي نات وجود النتيجة '' MsgBox(Q2.Count) 2 تجربة '''''''''''''''''' Dim MyDB2 = CreateDataContext() الكاي نات تحميل الغاء '' MyDB2.ObjectTrackingEnabled = False السابقة الاستعلام جملة نفس لاحظ '' Dim Q3 = (From ord In MyDB2.Categories Select ord).first شيء أي ارسال لايتم هنا لاحظ '' Dim Q4 = (From prod In Q3.Products Select prod).tolist خالية النتيجة '' MsgBox(Q4.Count) Dim myopt As New System.Data.Linq.DataLoadOptions الفرعية الكاي نات تحميل ذآرناه آما تعريف ''Products للكاي ن ''Category myopt.loadwith(of NorthWind.Category)(Function(cat As NorthWind.Category) cat.products) 3 تجربة '''''''''''''''' Dim MyDB3 = CreateDataContext() الطلب عند التحميل تمكين'' MyDB3.ObjectTrackingEnabled = True التحميل خيارات تحديد '' MyDB3.LoadOptions = myopt اختلف آيف الاستعلام راقب الا ن '' Dim Q5 = (From ord In MyDB3.Categories Select ord).first تحميلها سبق لا نه هنا استعلام لايوجد '' Dim Q6 = (From prod In Q5.Products Select prod).tolist نتاي ج يوجد '' MsgBox(Q6.Count) 4 تجربة '''''''''''''''' Dim MyDB4 = CreateDataContext() الطب عند التحميل الغاء '' MyDB4.ObjectTrackingEnabled = False التحميل خيارات '' ١٥
19 MyDB4.LoadOptions = myopt ايضا الاستعلام جملة لاحظ '' Dim Q7 = (From ord In MyDB4.Categories Select ord).first ينفذ لااستعلام '' Dim Q8 = (From prod In Q7.Products Select prod).tolist موجود النتاي ج ايضا '' MsgBox(Q8.Count) End Sub Function CreateDataContext() As NorthWind.NorthWind لا نشاء بسيطة دالةDataConteXt '' Dim mydb As New NorthWind.NorthWind("Northwind.sdf") mydb.log = Console.Out Return mydb End Function ھكذا أعتقد أنني استطعت على عجالة إعطاء دفعة لمن يريد االنتقال الستخدام LINQ to SQL ليضع قدمه على طريق البداية. أرجو أن أكون قد وقفت في العرض واألمثلة. مع أني الحظت عدم وجود أي أسئلة أو استفسارات وقد كان أحد أساتذتي عند كل نھاية درس يسأل "ھل من سؤال " وعندما ال أحد يسأل يقول"إما كلكم فاھمين... أو وال واحد كان سامعني " المھم أن يكون طرحي مفيدا والتنسونا من الدعاء.ولم نتنھي بعد حيث لدي أيضا بعض األفكار و التقنيات الستخدام Linq to SQL وسأطرحھا على شكل مواضيع مستقلة... والسالم عليكم ١٦
Microsoft Word - C#2
الفصل الا ول مفاهيم البرمجة بواسطة الا هداف معنى البرمجة بواسطة األھداف... 5 معنى الفصيلة 5...Class ما ھي دوال البناء و دوال الھدم...6 Construction & destruction ما ھي خاصية التوريث 7...inheritance ما
المزيد من المعلوماتالسالم عليكم و رحمة هللا شرح ربط قاعدة بيانات Access بال.. C# مذا ستستفيد من هذا الموضوع!! -معرفة طريقة صنع قاعدة بيانات بالAccess -ربط قاعدة البيانات
السالم عليكم و رحمة هللا شرح ربط قاعدة بيانات Access بال.. C# مذا ستستفيد من هذا الموضوع!! -معرفة طريقة صنع قاعدة بيانات بالAccess -ربط قاعدة البيانات هذه بالC # على بركة هللا.. * *إنجاز قاعدة بيانات ب*
المزيد من المعلومات) NSB-AppStudio برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( ) برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( NSB-AppStudio الدرس األول ) 1 ( الدرس
) NSB-AppStudio ) 1 ( أهداف الدرس : بعد انتهاء هذا الدرس ستكون الطالبة قادرة على أن : )1 توضح مميزات برنامج ( NSB-AppStudio ) 2( تعدد لغات البرمجة المستخدمة في برنامج ( NSB-AppStudio ) 3( تذكر خطوات كتابة
المزيد من المعلوماتكيفية تفعيل خدمة IIS ونشر موقع ويب على الشبكة احمللي السالم عليكم اصدقائي الكرام في هذا الكتاب سنتناول ما هي خدمة المعلومات وكيفية التفعيل ونشر الموقع
كيفية تفعيل خدمة IIS ونشر موقع ويب على الشبكة احمللي السالم عليكم اصدقائي الكرام في هذا الكتاب سنتناول ما هي خدمة المعلومات وكيفية التفعيل ونشر الموقع وتجربته وفي النهاية ستجدون روابط المثال مع شرح فيديو
المزيد من المعلوماتMicrosoft Word - moneybookers
الرحيم الرحمن االله بسم א א א ãããaewt{tuaçxà دليل المستخدم العربي في MONEYBOOKERS شرح بنك أوال عن البنك: :معلومات وقلربيزدنيعلما من بريطانيا. 1- البنك جنسيته المناسبة للعمل بھا. به تختار العملة -2 من 5
المزيد من المعلوماتAllomani Warehouse User Guide
المخزن warehouse.allomani.com دليل المستخدم اللوماني للخدمات البرمجية www.allomani.com / 11 اكتوبر / 2010 1 P a g e المحتويات اضافة و اعداد موقعك في المخزن... 3 اعداد بيانات ال...FTP 3 اعدادات بيانات حقوق
المزيد من المعلوماتMicrosoft Word - Access VBA
الفصل الا ول (البداية) تصميم قاعدة بيانات بسيطة...4 الا وامر الا ساسية المتوفرة فى المعالجات...12 الفصل الثانى (برمجة ا كسيس (VBA برمجة أآسيس...18 VBA مقارنة بين VB وVBA...18 الدخول إلى صفحات آتابة برامج
المزيد من المعلوماتMicrosoft Word - new.doc
الدرس الاول فى الماتلاب عنوان الدرس : ما هو الماتلاب الماتلاب هو لغة ذات مستوى عالى للحسابات والبرمجة و تمتاز بوجود برنامج يسهل عملية التعامل مع هذه اللغة. ويشمل البرنامج على: الحسابات الرياضية عمل الالجوريثمات
المزيد من المعلوماتكيفية استخدام موقع 4shared لرفع الملفات وتنظيمها على النترنت للمبتدئين. والمتقدمين في الحاسب. كتاب ل ابراهيم شاهين
كيفية استخدام موقع 4shared www.4shared.com لرفع الملفات وتنظيمها على النترنت للمبتدئين. والمتقدمين في الحاسب. كتاب ل ابراهيم شاهين بسم ال الرحمن الرحيم مقدمة بسيطة موقع 4shared.com هو موقع لرفع الملفات
المزيد من المعلوماتMicrosoft Word - Excel VBA
الفصل الا ول (البداية) قواعد البرمجة...4 مقارنة بين VB و...4 VBA ضبط بيي ة Excel للبرمجة...5 الماآرو فى برنامج...8 Excel أنواع الماآرو... 9 تنفيذ الماآرو... 11 شروط اسماء المتغيرات...18 الكاي ناتObjects...18
المزيد من المعلوماتالسالم عليكم ورحمة هللا وبركاتة كتاب تعلم برمجة االلعاب بأستخدام محرك االلعاب Unity 3D الكتاب مقدم من االستاذ : عماد عارف التوي موقع : Home OF Games ا
السالم عليكم ورحمة هللا وبركاتة كتاب تعلم برمجة االلعاب بأستخدام محرك االلعاب Unity 3D الكتاب مقدم من االستاذ : عماد عارف التوي موقع : Home OF Games الدورة تهتم فقط بتعلم البرمجة من االبتداء الى االحتراف
المزيد من المعلوماتاختر عنوان مناسب
1 كيفية الوصول الى البريد االلكتروني في الكلية 2 3 الهدف من المحاضرة.Webmail كيفية الدخول الى حساب البريد االلكتروني في الخادم الجديد باستخدام كيفية استعراض الرسائل االلكترونية في السيرفر القديم..Microsoft
المزيد من المعلوماتMicrosoft Word - SolutionOOPFinal2011.doc
صفحة 1 من 5 : : A : : 2010/ : : :. : (20/60) (2) ( 20) (10/20) : محاآاة الواقع على أنه مجموعة من الا شياء و أ ن آل شيء مكون من صفات و سلوك هو... التغليف التجرید البرمجة الشيي ية إخفاء طریقة تطبيق السلوك
المزيد من المعلوماتالأول في السي شارب((c#للمبتدائين
شباب التنميه والبداع : امحد ياسني شلش ذ د الدرس األول: فتح فيوجل ستوديو وشرحه 2012 1 -هذا هوه البرنامج نقوم بفتحه نسخه 2012 فيوجل استوديو new )نضغط علي - 2 اي مشروع جديد( project المتبنأ هذه لغه فيوجل
المزيد من المعلوماتالمحاضرة الثانية
المحاضرة الثان ة أنواع الب انات)المتغ رات و الثوابت( محتو ات المحاضرة أنواع الب انات اإلعالن عن المتغ رات الثوابت إسناد الق م إلى المتغ رات واجهة برنامج Visual Studio 2010 2 أنواع الب انات كلمات لغة ال
المزيد من المعلوماتMicrosoft Word - Oracle1
360 Hòî b þa@âbè½ai Oracle Developer îôèm@æë í@áüèm pbíìn a@ ŠèÏ تعرف على ا وراكل تعرف على أوراكل... 4 مالمح ومزايا مجموعة التطوير 5...Oracle Developer Suite 10g أدوات تطوير التطبيقات...6 Oracle Developer
المزيد من المعلوماتSlide 1
تصميم السيرة الذاتية كصفحات الويب د. احمد عادل اسماعيل عمادة المركز الجامعي لخدمة المجتمع و التعليم المستمر. WWW.Dr-Ahmed.Info Info@Dr-Ahmed.Info -------------- المرجع: www.support.office.com اهداف المحاضرة
المزيد من المعلوماتشرح توزيعة Parted Magic السلم عليكم و رحمة ال تعالى و بركاته شرح توزيعة Parted Magic )الصدار الثالث( الفهرس : (1 مقدمة (2 تحميل التوزيعة (
السلم عليكم و رحمة ال تعالى و بركاته )الصدار الثالث( الفهرس : (1 مقدمة 02... (2 تحميل التوزيعة 02... (3 حرق التوزيعة 06... (4 شرح قوائم محمل القلع 09... (5 لقطات من داخل التوزيعة 25... مرحلة القلع 25...
المزيد من المعلوماتThe Global Language of Business دليل ارشادي الستخدام صفحة خدمات الشركات األعضاء Members Area 1
دليل ارشادي الستخدام صفحة خدمات الشركات األعضاء Members Area 1 للتسجيل في صفحة خدمات الشركات Area( )Members على الموقع االلكتروني لشركة هيئة الترقيم االردنية www.gs1jo.org.jo يرجى اتباع الخطوات التالية
المزيد من المعلوماتشرح برنامج استعادة الملفات المحذوفة Recover my files من اعداد : رافاييل يوسف مقدمة: آلنا يعلم ان اجهزة الكومبيوتر قادرة على حفظ الملفات على قرصها الصل
شرح برنامج استعادة الملفات المحذوفة Recover my files من اعداد : رافاييل يوسف مقدمة: آلنا يعلم ان اجهزة الكومبيوتر قادرة على حفظ الملفات على قرصها الصلب على شكل موج ات آهرومغناطيسية و اننا نعلم باننا نستطيع
المزيد من المعلوماتحقيبة الدورة التدريبية التخزين السحابي Google Drive حقيبة المتدربة إعداد املدربة : عزة علي آل كباس Twitter 1438 ه
حقيبة الدورة التدريبية حقيبة المتدربة إعداد املدربة : عزة علي آل كباس Twitter : @azzahkabbas azzahkabbas@gmail.com 1438 ه الهدف العام : إكساب املتدربات املعرفة بأساسيات الحوسبة السحابية وتطبيقاتها بشكل
المزيد من المعلوماتBanner – Hold Information SOAHOLD
1 Financial Aid System Documentation - eservice E-serviceخطوات التقديم لنظام المساعدات عبر ال 2 خطوات التقديم لنظام المساعدات Steps to apply for financial aid 1 Login to the portal http://my.uaeu.ac.ae
المزيد من المعلوماتاردوينو – الدرس الثامن – تغيير درجة الالوان لـ RGB LED
اردوينو الدرس الثامن تغيير درجة الالوان ل RGB LED في هذا الدرس ستقوم بتطبيق ماتعلمته بالدرس السابع والرابع وذلك لاستخدام الازرار في تغيير درجة الالوان في RGB Led القطع المطلوبة لاتمام هذا الدرس عليك توفير
المزيد من المعلوماتWHAT’S NEW
الجديد في انجز تطبيق إصدارات X.4 المحتويات المحتويات... 1 المواصفات الجديدة بالنظام... 3.1.1.1 عدد المهام التي يجب إنجازها... 3 انشاء مهمة... 3.1.2 2. تعديل تكليف المهمة... 3 تاريخ حالات المهمة... 4.2.1.2.2.3
المزيد من المعلوماتeasy - translation
From: http://ar.miraath.net/audio/5030/01 Shaikh Ahmad Bazmool Http://ar.miraath.net/audio/download/5030/usool_us_sunnah_01.mp3 أما األمر األول فھو أنه يظن أن ھذا العلم ثقيل وال يفھمه فھذا خطأ فھذا خطأ
المزيد من المعلوماتورقة عمل الدرس الثاني تطبيقي اخلاص على هاتفي... برنامج App Inventor اعداد املعلمة : اماني ممدوح املصري مدرسة امحد شوقي الثانوية للبنات اختار اإلجابة ا
ورقة عمل الدرس الثاني تطبيقي اخلاص على هاتفي... برنامج App Inventor اعداد املعلمة اماني ممدوح املصري مدرسة امحد شوقي الثانوية للبنات اختار اإلجابة الصحيحة من بني االختيارات االتية - نضغط على االمر ببرنامج
المزيد من المعلوماتMicrosoft Word - CO_RT10
إعداد : تقديم الشكل أسفله يمثل مضخم يعتمد على ترانزيستور. فھو يحتوي على شبكة من المقاومات تمكن من تقطيب و مكثفات تعمل على ربط المضخم بأخر وذلك بتمرير اإلشارات المتناوبة. R1 100k 1µF 1µF (Load) Rc (charge)
المزيد من المعلوماتالموضوع الثالث تحليل التباين ANOVA) (Two Way الثنائي One Depended نلجأ الى ھذا القانون عند توفر متغيرين يتوقع بينھما تداخل او تفاعل (في تحليل التباين
الموضوع الثالث تحليل التباين ANOVA) (Two Way الثنائي One Depended نلجأ الى ھذا القانون عند توفر متغيرين يتوقع بينھما تداخل او تفاعل (في تحليل التباين االحادي كنا نقارن بين ثالث مجاميع في متغير واحد مثال
المزيد من المعلوماتالدليل التدريبي لتسجيل منتج البوابة االلكترونية للمطابقة )سابر( الدليل التدريبي لتسجيل منتج 0
البوابة االلكترونية للمطابقة )سابر( 0 جدول المحتويات 2 2 4 6 7 8 9 11 وصف النظام تسجيل المنتج إضافة منتج عن طريق الرمز المنسق الجمركي HS code إضافة منتج عن طريق الكلمات الداللية إضافة منتج عن طريق البحث
المزيد من المعلوماتجامعة حضرموت
جاهعة حضرهوت التسجيل االلكتروني لمرحلة التنسيق بالجامعة عبر الموقع www.hu-registration.com الصفحة الرئيسية زر الدخول على النظام ف حالة التسج ل سابقا ولد ك اسم مستخدم وكلمة مرور زر تسج ل متقدم جد د اذا
المزيد من المعلوماتبسم هللا الرحمن الرحيم المادة: مقدمة في بحوث العمليات )100 بحث ) الفصل الدراسي األول للعام الدراسي 1439/1438 ه االختبار الفصلي الثاني اسم الطالب: الرق
بسم هللا الرحمن الرحيم المادة: مقدمة في بحوث العمليات ) بحث ) الفصل الدراسي األول للعام الدراسي 9/8 ه االختبار الفصلي الثاني اسم الطالب: الرقم الجامعي: أستاذ المقرر: الدرجة: أكتب اختيارك لرمز اإلجابة الصحيحة
المزيد من المعلوماتالتاريخ: االمتحان النهائي لمساق برمجة متقدمة תכנות מתקדם موعد أ الزمن: ساعتان فقط الخميس 2017/7/27 )10 عالمات( السؤال األول for او )while الالزمة لما
التاريخ: االمتحان النهائي لمساق برمجة متقدمة תכנות מתקדם موعد أ الزمن: ساعتان فقط الخميس 2017/7/27 )10 عالمات( السؤال األول for او )while الالزمة لما يلي )الجمل بصيغتين(: أ اكتب جمل التكرار بلغة البرمجة
المزيد من المعلوماتMicrosoft Word - 1-NURSE CALL SYSTEM
أنظمة التيار الخفيف 1 -نظام استدعاء الممرضات Eman.A (نظام استدعاء الممرضات) NURSE CALL SYSTEM الھدف من النظام : تسھيل عملية الرعاية الصحية للمرضي, مساعدته في حالة الطوارء. تسھيل التواصل بين فريق العالج
المزيد من المعلوماتعرض تقديمي في PowerPoint
كود التدريب KSH7TDB19 google يتم البحث عنه في متصفح sway يكون ضمن البرامج الموجودة من الموقع للتسجيل في hot mail او الدخول على البريد االلكتروني من : khulood.sairafi ضمن البرامج الموجودة hot mail للتسجيل
المزيد من المعلومات( اختبارات الفروق لعينتين مستقلتين Samples) 2) Independent مان- ويتني( U (Mann-Whitney ب( نحتاج الى ھذا القانون الغراض المقارنة بين مجموعتين او عينتين
( اختارات الفروق لعينتين مستقلتين Samples) 2) Independent مان ويتني( U (MannWhitney ( نحتاج الى ھذا القانون الغراض المقارنة ين مجموعتين او عينتين مستقلتين مثال المقارنة ين عينة للذكور م ع عينة لالناث او
المزيد من المعلوماتدليل تدريبي : الحلول لما بعد اختراق الحسابات إعداد : محمد المسقطي Mohammed Al-Maskati بمساعدة : علي السباعي Ali Sibai
دليل تدريبي : الحلول لما بعد اختراق الحسابات إعداد : محمد المسقطي Mohammed Al-Maskati Twitter:@mohdmaskati بمساعدة : علي السباعي Ali Sibai Twitter:@alisibai المقدمة : العديد منكم يتعرض إلى حالة من الصدمة
المزيد من المعلوماتالفرق بين البرمجة الإجرائية و البرمجة المسيرة بالأحداث :
طرق كتابة HTML محرر النصوص Text Editor مثل Notepad محرر بطريقة واجهة المستخدم الرسومية GUI Editor وهو محرر يكتب كود بلغة Dream تلقائيا باستخدام القوائم الموجودة فيه مثل برنامج Weaver 8.0 HTML 2 انواع محررات
المزيد من المعلوماتHow To Make Connection Between Oracle DB Server 9i & Oracle Developer 6i
بسم االله الرحمن الرحيم How To Make Connection Between Oracle DB Server 9i & Oracle Developer 6i آيف تربط الا وراآل 9i مع الديفيلوبر 6i الا س م التخص ص المو ه ل العم ل البل د اله اتف البري د الص فحة يوسف
المزيد من المعلوماتالدليل التدريبي لطلب شهادة مطابقة إرسالية )للمنتجات المستوردة( البوابة االلكترونية للمطابقة )سابر( الدليل التدريبي لطلب شهادة مطابقة إرسالية )للمنتجات
البوابة االلكترونية للمطابقة )سابر( 0 جدول المحتويات 2 2 9 1 وصف النظام 2 طلب مطابقة إرسالية جديد 3 إصدار الشهادة 1 1 وصف النظام يهدف هذا النظام لتمكين ضابط اتصال المنشأة ومفوض المنشأة من استخراج شهادة
المزيد من المعلوماتPowerPoint Presentation
عرض لنظام المعماري الاستراتيجي لمتابعة الأداء وتنفيذ الاستراتيجيات 1999 مقدمة تاسست عام في مصر شركة مساهمة خاصة من عام 2002 المقر الرئيسي بالقاهرة 35 موظف شركاء استراتيجيين في الشرق الأوسط خبرات دولية
المزيد من المعلوماتالتحكم في الجهاز عن بعد باستخدام نظام VNC
التحكم بالجهاز عن بعد باستخدام نظام VNC ا عداد : صالح عباس. w w w. a n a b i s h. c o m 2 هذا الملف من ا نتاج موقع ا نابيش وكافة حقوق التا ليف والنشر والتوزيع محفوظة للموقع ولا يجوز بيعه ا و تا جيره با
المزيد من المعلوماتمختبر البرمجة والتحليل العددي قسم علوم الجو جمل التحكم والشرط والتكرار المرحلة الثانية PROGRAM CONTROL, CONDITION AND LOOP STATEMENTS الجمل الشرطية :-
جمل التحكم والشرط والتكرار PROGRAM CONTROL, CONDITION AND LOOP STATEMENTS الجمل الشرطية :- تقسم جمل الشرط الى نوعين وهي :- -1 جملة اذا الشرطية ) statement ( if -2 جملة التوزيع ) case ( switch -1 جملة اذا
المزيد من المعلومات<4D F736F F D20D8D1EDDEC920CDD0DD20C7E1E1EDE4DFD32E646F63>
بسم االله الرحمن الرحيم السلام عليكم ورحمة االله وبرآاته تم تحميل هذا الكتاب من موقع آتب الحاسب العربية www.cb4a.com للمزيد من الكتب في جميع مجالات الحاسب تفضلوا بزيارتنا في البدایة ستحتاج إلى قرص Hiren's
المزيد من المعلوماتمادة اثرائية تكنولوجيا الصف الحادي عشر وحدة الوسائط المتعددة شرح برنامج VSDC إلنتاج وحترير الفيديو المشرف التربوي د.عطايا يوسف عابد مديرية التربية وال
مادة اثرائية تكنولوجيا الصف الحادي عشر وحدة الوسائط المتعددة شرح برنامج VSDC إلنتاج وحترير الفيديو المشرف التربوي د.عطايا يوسف عابد مديرية التربية والتعليم شرق غزة مارس 9102 م الصفحة 1 تطبيقات برنامج VSDC
المزيد من المعلوماتدولة فلسطين و ازرة التربية والتعليم العالي المبحث: تكنولوجيا المعلومات / النظري بسم هللا الرحمن الرحيم مدة االمتحان : ساعتان نموذج تجريبي مجموع العالم
دولة فلسطين و ازرة التربية والتعليم العالي المبحث: تكنولوجيا المعلومات / النظري بسم هللا الرحمن الرحيم مدة االمتحان : ساعتان نموذج تجريبي مجموع العالمات )70( عالمة مالحظة: عدد األسئلة خمسة أسئلة وعلى الطالب
المزيد من المعلوماتالفصل الثاني
1 برنامج MINTAB 17 105 احص إعداد أ- ريم المبطي 2 الفصل الثاني ( اختبارات الفروض وفترات الثقة ) لمعالم مجتمع واحد أوال : اختبار المتوسط : لدينا حالتين : نستخدم اختبار Z عندما : N كبيرة و معلومة أو مجهولة
المزيد من المعلوماتSP-1101W/SP-2101W eciug niitallatini kciuq 1.0v /
SP-1101W/SP-2101W eciug niitallatini kciuq 1.0v / 1014-05 1 I. معلومات حول المنتج 1-1. محتويات العبوة مؤتمر نزع السالح مع دليل التثبيت السريع مفتاح القابس الذكي دليل التثبيت السريع 1-2. اللوحة األمامية
المزيد من المعلوماتالدوال في اكسل الدوال: هي صيغ معرفة مسبقا تقوم بإجراء عمليات حسابية بإستخدم قيم محددة ووسائط مسماة في ترتيب بنية معينة بناء الدالة: إغالق. يبدأ بناء ا
الدوال في اكسل الدوال: هي صيغ معرفة مسبقا تقوم بإجراء عمليات حسابية بإستخدم قيم محددة ووسائط مسماة في ترتيب بنية معينة بناء الدالة: إغالق. يبدأ بناء الدالة بعالمة المساواة )=( ثم اسم الدالة وقوس فتح ويتم
المزيد من المعلوماتNatural Resources
مغامرات في مجال الطاقة تمسك بقبعتك! إنه يبدأ مع جزيرة... Source: https://www.google.com ... على الجانب اآلخر من المحيط األطلسي Source: https://www.google.com الجزيرة تقع في وسط بحر كاتيغات في الدنمارك.
المزيد من المعلوماتعرض تقديمي في PowerPoint
.1.2.3 أولا هذا اإلجراء يقوم به أمين مركز مصادر التعلم بعد الدخول للصفحة الرئيسية من حسابه في نظام نور ثم إختيار مصادر التعلم يتم إضافة أوعية مصادر التعلم ) الكتب أقراص الليزر( من قبل أمين مركز المصادر
المزيد من المعلوماتABU DHABI EDUCATION COUNCIL Abu Dhabi Education Zone AL Mountaha Secondary School g-12 science section Mathematics Student Name:.. Section: How Long i
ABU DHABI EDUCATION COUNCIL Abu Dhabi Education Zone AL Mountaha Secondary School g-12 science section Mathematics Student Name:.. Section: How Long is the Average Chord of a Circle?/ 2009-2010 Second
المزيد من المعلوماتجمعية زمزم للخدمات الصحية التطوعية بإشراف وزارة الشؤون االجتماعية تصريح رقم )411( نظام إدارة الجودة Quality Management System إجراءات الئحة تقنية املع
جمعية زمزم للخدمات الصحية التطوعية بإشراف وزارة الشؤون االجتماعية تصريح رقم )411( نظام إدارة الجودة Quality Management System إجراءات الئحة تقنية املعلومات زمزم 19 إعداد االسم : هاني عبدالعزيز فلمبان الوظيفة
المزيد من المعلوماتبسم اهلل الرمحن الرحيم الوحدة الثانية الفيجول بيسك Microsoft VISUAL BASIC احلمد اهلل الذي أكرمين و منحين الفرصة لتوفري لكم هذا امللخص املنقى للوحدة ال
بسم اهلل الرمحن الرحيم الوحدة الثانية الفيجول بيسك Microsoft VISUAL BASIC احلمد اهلل الذي أكرمين و منحين الفرصة لتوفري لكم هذا امللخص املنقى للوحدة الثانية من الكتاب املدرسي للصف احلادي عشر, و ارجوا أن
المزيد من المعلوماتMicrosoft Word - Kollo_ ARA.docx
مخيم (Kalvudden) الداخلي الصيفي لعام ٢٠١٦ ما هو مخيم (Kalvudden) الصيفي الداخلي (Kalvudden) الصيفي الداخلي السباحة وقضاء الوقت مع ا صدقاء ولعب آرة القدم والخروج في نزهات وصيد يمكنك لدينا في مخيم ا سماك
المزيد من المعلوماتبرنامج المساعدات المادية الذكي خطوات التقديم للمساعدة المادية...2 خطوات رفع المستندات المرفوضة...10 خطوات التاكد من حالة الطلب
برنامج المساعدات المادية الذكي خطوات التقديم للمساعدة المادية...2 خطوات رفع المستندات المرفوضة...10 خطوات التاكد من حالة الطلب... 13 1 خطوات التقديم للمساعدة المادية قبل البدء باستخدام البرنامج الرجاء:
المزيد من المعلوماتصندوق استثمارات اجلامعة ومواردها الذاتية ( استثمارات اجلامعة الذاتية ) مركز مركز استثمارات الطاقة املتجددة االستثمارات مركز اإلمام للمالية واملصرفية ا
صندوق استثمارات اجلامعة ومواردها الذاتية ( استثمارات اجلامعة الذاتية ) استثمارات الطاقة املتجددة االستثمارات اإلمام للمالية واملصرفية العقارية استثمارات تقنية املعرفة التنمية الصحية الوسائط املتعددة مركز
المزيد من المعلوماتالمحاضرة الثانية عشر مقاييس التشتت درسنا في المحاضرة السابقة مقاييس النزعة المركزية أو المتوسطات هي مقاييس رقمية تحدد موقع أو مركز التوزيع أو البيانات
المحاضرة الثانية عشر مقاييس التشتت درسنا في المحاضرة السابقة مقاييس النزعة المركزية أو المتوسطات هي مقاييس رقمية تحدد موقع أو مركز التوزيع أو البيانات وهي مهمة في حالة المقارنة بين التوزيعات المختلفة وكان
المزيد من المعلوماتمشروع المكتبات الرقمية
قطاع الدراسات العليا والبحوث اإلدارة العامة للمكتبات قاعدة بيانات IEEE Electrical, Electronic Engineering and Computer Science إصدار رقم يونيه )6( 2016 قطاع الدراسات العليا والبحوث االدارة العامة للمكتبات
المزيد من المعلوماتFS Future Series دليل البدء السريع الرجاء قراءة التعليمات التالية من أجل تثبيت وتنشيط 3D. Visualizer برنامج
FS Future Series دليل البدء السريع الرجاء قراءة التعليمات التالية من أجل تثبيت وتنشيط 3D. Visualizer برنامج 1. اتفاقية الترخيص والضمان المحدود الرجاء قراءة أحكام اتفاقية الترخيص قبل استخدام برنامج.Visualizer
المزيد من المعلوماتاستمارة تحويل طالب يتعلم في الصف العادي لجنة التنسيب إلى )التقرير التربوي( استمارة لتركيز المعلومات حول العالج المسبق الذي حصل علية الطالب\ة الذي يتعل
استمارة تحويل طالب يتعلم في الصف العادي لجنة التنسيب إلى )التقرير التربوي( استمارة لتركيز المعلومات حول العالج المسبق الذي حصل علية الطالب\ة الذي يتعلم في صف عادي, قبل تحويله إلى لجنة التنسيب.يجب تعبئة
المزيد من المعلوماتدليل المستخدم لبوابة اتحاد المالك التفاعلية
دليل المستخدم لبوابة اتحاد المالك التفاعلية الشاشة الرئيسية 3 إنشاء مستخدم جديد 4 أوال: التسجيل كفرد 5 - نوع الهوية «سعودي» : 5 - نوع الهوية «مقيم :» 6 - نوع الهوية «خليجي» : 7 : التسجيل كمنشأة : 9 ثانيا
المزيد من المعلوماتriyadh-geeks-mobile-first
هذه الشريحة ت ركت فارغة عمد ا. رياض قيكس. لقاء شهر أغسطس ٢٠١٥. اجلو ال أوال *. تصميم صفحات الو يب ألجهزة اجلو ال. * مستلهم من http://www.youtube.com/watch?v=nje_or4vilu و غيره. ح سام الزغيبي. @hossamzee
المزيد من المعلوماتعربي Sign-Code Website Guide فيما يلي دلي ا ل لطلب اسم مستخدم جديد لConnect Sell من خ لل موقع.Sign-Code يسمح لك الموقع بالدخول اإلداري على اسم المستخد
عربي فيما يلي دلي ا ل لطلب اسم مستخدم جديد لConnect Sell من خ لل موقع.Sign-Code يسمح لك الموقع بالدخول اإلداري على اسم المستخدم الخاص بك لID Office من خ لل طلب مستخدمين جدد وتحديثها وحتى حذفها:.1 ستتلقى
المزيد من المعلومات???? ???????? ?????? ????? ...
1 of 13 5/10/2009 7:19 PM منتديات الفلوجة اإلسالمية اإلنترنت والبرامج تصفح اإلنترنت بتقنية تشفير Ssl 256 بروكسي < ::: المنتديات التقنية ::: < منتدى علوم الحاسب و مجانا - بدون برامج اسم العضو كلمة المرور
المزيد من المعلوماتMicrosoft Word - Suites_Numériques_1_sm.doc
الا ستاذ الا لى علم رياضية المتتاليات العددية - I عمميات 4 ; 8 ; ; 6 ; ; ; أمثلة تمهيدية مثال أتمم بشكل منطقي ما يلي نقترح تخصيص رمز لكل من هذه الا عداد لهذا نضع u 4 ; u 8 ; u ; u 6 ; 4 5 فيكن لدينا I
المزيد من المعلوماتمتطلبات النظام متطلبات جهاز الكمبيوتر الشخصي معالج Pentium 1 Intel غيغا هرتز أو أسرع نظام التشغيل Windows 2000 أوXP Windows مع Service Pack 2 أو Vista
متطلبات النظام متطلبات جهاز الكمبيوتر الشخصي معالج Pentium 1 Intel غيغا هرتز أو أسرع نظام التشغيل Windows 2000 أوXP Windows مع Service Pack 2 أو Vista Window أو Windows 7 Enterprise أو Ultimate أو Business
المزيد من المعلوماتمدرسة هارون الرشيد الثانوية للبنين المهارات العملية / تكنولوجيا المعلومات ( الثاني عشر) إعداد/ أ. خالد الح
املهارات العملية / تكنولوجيا املعلومات )Appinventor )بزنامج :on line من خالل االنترنت مباشرة App inventor خطوات تشعيل برنامج الدخول إلى حساب ج م ل.Gmail ثم رابط الموقع App inventor عبر متصفح االنترنت http://appinventor.mit.edu/explore/
المزيد من المعلوماتالاتصال الفعال بين المعلم والطالب
) 10-10 مدرسه التعاون ( بحث إجرائي عن االتصال الفعال وإثارته لدافعية التعلم لدي الطالب في مدرسة التعاون االتصال عامل هام من العوامل التي تقوم عليها حياة الناس وكل فرد منا يمارس االتصال مع من حوله من أفراد
المزيد من المعلوماتعرض تقديمي في PowerPoint
Dr./ Ahmed Mohamed Rabie Sayed 1 2 صندوق االدوات صندوق االدوات Tools Box يحتوى اظهار وإخفاء Tools Box من قائمة على االدوات Window الرئيسية الالزمة النشاء واختيار.Tools وتعديل التصميم. ويمكن 3 Move Tool
المزيد من المعلوماتالصف السادس االبتدائي الفصل الدراسي االول بسم هللا الرحمن الرحيم الصفحة محتويات الفصل الدراسي األول الموضو
بسم هللا الرحمن الرحيم الصفحة 2 3 4 5 6 7 9 11 11 13 14 16 16 17 11 19 22 محتويات الفصل الدراسي األول الموضوع اختيار دولة محددة تغيير نمط عرض التاريخ لالرقام تغيير نمط عرض التاريخ )هجري - ميالدي( تغيير
المزيد من المعلوماتDeterminants
قسم الهندسة الزراعية د/ خالد ف ارن طاهر الباجورى استاذ الهندسة الز ارعية المساعد khaledelbagoury@yahoo.com Mobil: 01222430907 المقدمة ماهي المصفوفة جمع الضرب الكمي للمصفوفات ضرب منقول المصفوفة محدد المصفوفة
المزيد من المعلوماتالرقابة الداخلية والرقابة الخارجية
الرقابة الداخلية - التدقيق الداخلي الرقابة الخارجية القاضي أفرام الخوري الرقابة الداخلية - التدقيق الداخلي والرقابة الخارجية الفقرة االولى : المقاييس العامة ألي نظام رقابي 1 هدف الرقابة : الرقابة على الوسيلة
المزيد من المعلوماتالفهرس: كيفية ضبط الموبايل/التابلت: خدمة االنترنت معرفة مسبقا على الجهاز. في حالة عدم تعريف خدمة االنترنت مسبقا على الجهاز يمكنك ضبطه يدويا ادخل على D
الفهرس: كيفية ضبط الموبايل/التابلت: خدمة االنترنت معرفة مسبقا على الجهاز. في حالة عدم تعريف خدمة االنترنت مسبقا على الجهاز يمكنك ضبطه يدويا ادخل على Data Cellular أو network«3g«ثم ادخل على Settings APN
المزيد من المعلوماتدورة LINQ
دورة LINQ Language-Integrated Query بقلم: محمد سامر أبو سلو mosamersa@yahoo.com samerselo2005@hotmail.com هذا الكتاب عتبر دورة تعر ف ة بتقن ة Linq نشرح ف ها التقن ات الجد دة ف ف جول ستود و 2008 والمتعلقة
المزيد من المعلوماتMicrosoft Word - QA-Reliability
اختبار صلاحية الاستبانات Questionnaires Reliability Analysis لتقويم ا دوات جمع البيانات الميدانية (الاستبانات) باستخدام قياس ليكرت لدرجة الموافقة Likert Scale من نوعان هناك الاختبارات التي لها تخضع ا ن
المزيد من المعلوماتعبارات الحملة
عبارات الحملة مالحظة هامة: لقد قمنا بتقسيم العبارات ال 12 املختارة إىل مجموعات ليك تختار منها صفحة العبارة التي تناسبك لطباعتها اعتاد ا عىل الشخص الذي سيتصور حامال اللوحة يف حال كان ذو متالزمة داون لوحده
المزيد من المعلوماتdoc11
الجزء األول من الكتاب المدرسي (3 ع ت 3 ت ر ر ( التطورات الزمنية الرتيبة تطور جملة كيميائية نحو حالة التوازن الوحدة 4 DAHEL MT Lycée benalioui salah SETIF ***********************************************************
المزيد من المعلوماتمنح مقد مة من مبادرة ألبرت أينشتاين األكاديمية األلمانية لالجئين إلى النازحين السوريين في لبنان يعرف باسم "دافي (DAFI) العام األكاديمي الجامعي 4102/41
منح مقد مة من مبادرة ألبرت أينشتاين األكاديمية األلمانية لالجئين إلى النازحين السوريين في لبنان يعرف باسم "دافي (DAFI) العام األكاديمي الجامعي طلب مساعدة تعليمية مالحظة: إن الموعد النهائي لتقديم الطلبات
المزيد من المعلوماتأكاديمیة الجھة الشرقیة تمارین محلولة:المنطق المستوى : الا ولى باك علوم تجریبیة الا ستاذ: نجیب عثماني p q p : ((- 2 ) 2 ¹ 4 ) q : p عبا
أكاديمیة الجھة الشرقیة تمارین محللةالمنطق المستى الا لى باك علم تجریبیة الا ستاذ نجیب عثماني ¹ عبارة ( Ï تمرین أنقل الجدل التالي ثم ضع العلامة "" في الخانة المناسبة. كل زجي قابل للقسمة على مجمع عددین فردیین
المزيد من المعلوماتالشريحة 1
2 األشكال الثالثية األبعاد 4 الف ص ل السادس 5 6 ن 2 : املئ الجدول بالرقم المناسب عدد أضالع القاعدة 4 ن 3 8 عدد أحرف المجس م 6 كانت إذا قاعدة الهرم مثلثة الشكل ذ فكم عدد أضالعها كم حرف ا كانت إذا للهرم
المزيد من المعلوماتMicrosoft Word - Sample Weights.doc
ورشة العمل الا قليمية حول تصميم العينات الدوحة ١٥-١٧ ا يار/ مايو ٢٠٠٧ ترجيح العينات ا عداد خميس رد اد مستشار العينات ١ المحاضرة الثامنة ترجيح العينات مقدمة ان عملية ترجيح العينة تعنى عملية اعادة وضع العينة
المزيد من المعلوماتFull Mark الفرعين : األدبي والفندقي السياحي الوحدة : األولى النهايات واالتصال إعداد وتصميم األستاذ : خالد الوحش مدرسة أبو علندا الثانوية للبنين
الفرعين : األدبي والفندقي السياحي الوحدة : األولى النهايات واالتصال إعداد وتصميم األستاذ : خالد الوحش مدرسة أبو علندا الثانوية للبنين 0798016746 http://www.youtube.com/uer/moonkaled http://khaledalwahh.wordpre.com/
المزيد من المعلوماتMicrosoft Word - 27
المواصلات في إسطنبول ھناك عدة وساي ل للمواصلات في إسطنبول یمكنك استخدامھا والاستفادة منھا مثل التاكسي الباص لترموه المترو- وكذلك السفن. أولا سوف نتكلم عن التاكسي :- ننصحك با شیاء ربما تغیب عن بالك یحتوي
المزيد من المعلوماتForum.zyzoom.net
إلنتاج مقاطع الفيديو والتعديل عليها Movavi 15.2.0 Videoانفراد_تام إصدار Editor Plus محمول حصري Fonts Lover انفراد حصري على منتديات زيزوووم الصفحة 1 أ قدم إليكم احدث وآخر اصدار لبرنامج Movavi Video Editor
المزيد من المعلوماتمكثف الثالثة الوحدة البوابات املنطقية 1 هاتف : مدارس األكاد م ة العرب ة الحد ثة إعداد المعلم أحمد الصالح
مكثف الثالثة الوحدة البوابات املنطقية هاتف : 798226 النظ ري الج زء و الثاني األ ول للد رسين وضح ان قصىد ت ا يهي : انرعثير انعالئقي ج هح خثريح ذكى قي رها إيا صىاب )( و إيا خطأ )( ان عايم ان طقي راتط يسرخذو
المزيد من المعلوماتMicrosoft Word - dériv sc maths.doc
الاشتقاق تطبيقاته دراسة الدال الثانية سلك بكالريا ع ف ع ح أ - الاشتقاق في نقطة- الدالة المشتقة ( A أنشطة نشاط باستعمال التعريف ادرس اشتقاق الدالة في حدد العدد المشتق في إن جد ثم حدد معادلة المماس أ نصف
المزيد من المعلوماتطلب الحصول على مقعد في الروضة أوSFO الطلب يجب ان يوضع في بوابة اولياء االمور الموجودة في الموقع االلكتروني للبلدية htts ://sandefjord.ist-asp.com/sand
طلب الحصول على مقعد في الروضة أوSFO الطلب يجب ان يوضع في بوابة اولياء االمور الموجودة في الموقع االلكتروني للبلدية htts ://sandefjord.ist-asp.com/sandefjordpub/login.htm قبل البدء بالطلب عليك اختيار الروضة
المزيد من المعلوماتPowerPoint Presentation
مصرف اإلنماء التقديم للوظائف الداخلية 21 أكتوبر 2018 التسجيل كموظف داخلي في حال التحاقك بالمصرف في أو قبل 22 فبراير 2016 يكون لديك بالفعل حساب في بوابة التوظيف. يرجى النقر على الرابط التالي: https://career.alinma.com/en/forgotuserinfo/
المزيد من المعلوماتHow To Install Oracle Forms & Reports 6i
بسم االله الرحمن الرحيم How To Install Oracle Form & Report 6i آيف تعد وتثبت أوراآل فورم و ريبورت الا صدارة 6i الا س م التخص ص المو ه ل العم ل البل د اله اتف البري د الص فحة يوسف عثمان ناصر الشفيع مطور
المزيد من المعلوماتVisual Basic.Net كتاب تعليمي للمبتدئيين اعداد / محمد حازم الشميري 1
1 سلسلة تعليمية من الصفر حتى االحتراف بيسك فيجوال. نت للمبتدئيين الطبعة االولى 3418 ه 6132 م 2 محمد حازم الشميري خريج كلية العلوم االدارية / محاسبة بك جامعة تعز 4102 م الجمهورية اليمنية تعز االيميل : profionaldhim@gmail.com
المزيد من المعلوماتSchedule Planner User Guide Target Audience: Students This tool can help you better plan your course schedule by generating a visual representation of
Schedule Planner User Guide Target Audience: Students This tool can help you better plan your course schedule by generating a visual representation of possible schedules with no time conflict. Getting
المزيد من المعلوماتاسم المفعول
اسم المفعول اسم المفعول اسم ي شتق من الفعل المتعدي المبني للمجهول المتعدي وهي تدل على وصف من يقع عليه الفعل. يصاغ اسم المفعول على الن حو التالي : 1 الفعل الثالثي : على وزن م ف ع ول مثل: ك ت ب : م ك ت وب
المزيد من المعلوماتMicrosoft PowerPoint - Session 7 - LIBYA - MOH.pptx
دولة ليبيا وزارة الصحة مركز المعلومات والتوثيق 1 إعداد : محمد إبراھيم صالح مدير مركز المعلومات والتوثيق 2 المحتويات. المؤسسات المسئولة في مجال االحوال المدنية واإلحصاءات الحيوية. االطار القانوني لتسجيل.
المزيد من المعلوماتMorgan & Banks Presentation V
المحرم 1433/ ديسمبر 2011 1 1 د. صنهات العتييب االستاذ بجامعة الملك سعود د. مسري الشيخ مستشار تطوير المصرفية اإلسالمية 2 علي اإلجابة الندوة تحاول التساؤالت التالية: املصرفية أين اإلسالوية يف البنوك التقميدية
المزيد من المعلوماتالوحدة التاسعة
الفائدة من احملاضرة التاسعة اإلجراءات و الدوال Procedures and Functions.1.2.3.4 استخدام اإلجراءات والدوال ميكن تلخيصها يف اآليت :- تقليل حجم الربانمج. سهولة تطوير الربانمج يف املستقبل. سهولة اكتشاف اخطاء
المزيد من المعلومات<4D F736F F D20CFE1EDE120E3E5C7D1C7CA20C7E1CADDDFEDD E646F63>
National Center for Examinations & Educational Evaluation (NCEEE) المركز القومى لالمتحانات والتقويم التربوى قسم البحوث وحدة االختبارات النفسية والتربوية دليل إثراء مھارات التفكير المتمايز في ضوء اتجاھات
المزيد من المعلوماتعرض تقديمي في PowerPoint
المحاكاة وتمثيل األدوار أوال : مفهوم طريقة تمثيل األدوار : أن يقوم الطالب بدور شخصية أخرى, سواء كانت هذه الشخصية تاريخية أو خيالية أو واقعية, ويعبر عن آرائها وأفكارها في الموضوع أو القضية المطروحة.] 1
المزيد من المعلومات