العودة   منتدى رياض الجنة - Riad Al-Ganah > الرياض التقنية > روضة الكورسات والدورات التقنية والعلمية > روضة دورات تقنية الـ .NET بلغاتها المختلفة > دورة .NET 2008 من منتدى فيجوال بيسك للعرب

دورة .NET 2008 من منتدى فيجوال بيسك للعرب مقدم الدورة : أحمد جمال ، نوع الدورة : كتابية مصحوبة بصور ، حالة الدورة : انتهت ، عدد الدروس : 80 درس . مستوى الدورة : من البداية للاحتراف .

إضافة رد

 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 02-26-2010, 04:33 PM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس الخامس والأربعون : Query Expressions دورة .net 2008

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

تعتبر ال Query Expressions هي الخطوة الأولى والأساسية في عالم LINQ ، سنتعرف عليها هنا باختصار شديد كميزة جديدة من مميزات .net 2008 فيما سنؤجل باقي التفاصيل للفصول القادمة حينما نبدأ التعامل الفعلي مع قواعد البيانات .

لنرى هذا المثال مثلاً :
كود PHP:
from d in developers
where d
.******** =="C#" 
select d.Name
ضع بدلا من **** كلمة Languag e مع حذف المسافة بين حرف g و e

هذا بالضبط هو محتوى جملة الاستعلام التي تعودت على كتابتها سابقاً بالشكل التالي :
كود PHP:
select name from developers where ********="C#" 
إذن لماذا هذا الشكل الجديد ؟
في السابق كنا نقوم بارسال جملة الاستعلام ليتم تنفيذها في قاعدة البيانات وتعود بناتج على شكل DataReader أو مهما يكن ، أما الآن اصبحت جمل الاستعلام جزء من محتويات اللغة التي تقوم ببرمجتها .
لتعمل على LINQ فلا بد من توريد مجال الأسماء هذا :
كود PHP:
using System.Linq
الآن سنعود لنقطة البداية ، ال LINQ تعتمد على ان قاعدة البيانات هي عبارة عن Array أو أي جزء منها ، لذا سنجرب بعض العمليات على ال Array ، لنفترض الشكل التالي مثلاً :
كود PHP:
string[] userNames = {"Ahmed""Ali","Mohammed""Ahmed","Ramy""Khaled"}; 
*** لن اذكرك كثيراً بأنني هنا لا اهتم ب LINQ قدر ما اهتم بال Query Expressions ، الفارق هو ان الأولى خاصة بالتعامل مع قواعد البيانات بمختلف انواعها اما الثانية فهي تعلمك كيفية الكتابة فقط دون التطرق لخصائص قواعد البيانات .

هذه المصفوفة قد تكون قاعدة بيانات ، قد تكون ملف XML ، قد تكون أي شيء آخر ، الآن سنحاول بناء جملة استعلام لقراءة الاسماء التي تساوي "Ahmed"
كود PHP:
 
IEnumerable
<stringsubset from users in userNames
where users 
== "Ahmed" orderby users select users
الناتج سيكون ايضاً array ، لذا يمكنك الآن طباعتها ببساطة بالشكل التالي :
رمز:
كود PHP:
foreach (string s in subset)
Console.WriteLine("Item: {0}"s); 
يمكنك بالطبع استخدام اي دالة من دوال C# ، لذا فالجملة التالية صحيحة لعرض الاسماء اطول من ثلاث حروف :
كود PHP:
IEnumerable<stringsubset from users in userNames
where users
.Length 3 orderby users select users
ايضاً قد لا تكون قادراً على معرفة نوع البيانات الظاهر ، خصوصاً لو كنت تستعلم عن اكثر من حقل حيث ان الناتج لا بد ان يكون فئة ، هنا تظهر لنا فائدة ال var أو ال Dim بدون Data Type التي شرحناها سابقاً ، ايضاً ربما لا تعود جملة الاستعلام بنتيجة لذا سنسترجع هنا فائدة ال Nullable Types والتي شرحناها ايضاً في درس سابق .

طريقة أخرى لكتابة هذه الجمل باستخدام Lambada ، وسنتعرف عليها في مرحلة قادمة .

للتحويل إلى vb.net يمكنك مراجعة دروس الأخ النبهاني ومحمد سامر سلو حول LINQ ، بصراحة لم اكن قادراً على تطبيق عملية التحويل لذا اعتذر .

آخر مواضيعنا في هذا الدرس هو التعرف على المعاملات الخاصة ب LINQ ، اتوقع انه سيكون نوع من التكرار غير المطلوب ان اقوم بشرحها خصوصاً انها مشروحة بالكامل في كتاب ( إبدأ LINQ ) ، لذا سأقتبس هنا الجزء الخاص بشرحه بالكامل :

الكتاب بالكامل موجود هنا ، ما اطلبه منك تحديداً هو قراءة الصفحات من 27 إلى 42 :
http://www.vb4arab.com/vb/showthread.php?p=66556

لست أذكر مؤلف الكتاب تحديداً ولكن اتوقع انه الأخ محمد حمدي غانم ، إذا كنت قد أخطأت فأتمنى منكم التصحيح .

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


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس
إضافة رد


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

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

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الدرس الرابع والأربعون : الـ Pointers دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-26-2010 04:30 PM
الدرس الثالث والأربعون : Operator Overloading دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-26-2010 04:22 PM
الدرس الثاني والأربعون : ال Gc دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-26-2010 04:17 PM
الدرس الواحد والأربعون : Partial Methods دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-26-2010 04:14 PM
الدرس الثامن والثلاثون : Lambda Expressions دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-25-2010 02:54 PM

استضافة الحياة

الساعة الآن 07:47 AM.


Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية
Ads Management Version 3.0.1 by Saeed Al-Atwi

SlamDesignzslamDesignzEdited by Riad Al-Ganah Team - جميع الحقوق محفوظة لشبكة رياض الجنة

Privacy Policy Valid XHTML 1.0 Transitional By SlamDesignz Valid CSS Transitional By SlamDesignz