العودة   منتدى رياض الجنة - 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

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

الساعة الآن 02:57 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