الأربعاء، 2 أبريل 2014

Language Integrated Query (LINQ) كيفية استخدام


واحدة من الاختلافات الرئيسية بين net.3 و .net3.5 هي لغة الاستعلام الموسعة LINQ والتي تمكنك من كتابة الاستعلامات بطريقة تختلف عن جمل ال SQL ةانما تبدو اقرب مايكون الى لغة التكلم بين البشر ولكن ضمن قواعد محددة.


لعمل اهم مايميز LINQ هو مرونتها وامكانية استخدامها للحصول على بيانات مثل استعلامات التحديد او الدوال التجمعية وغيرها كثير. ولكن المميز والملفت للآنتباه هو قدرة هذه اللغة على العمل قواعد البيانات الاعتيادية بالاضافة الى اي مجموعة بيانات مخزنة في اجدى المصفوفات الذكية الموجودة بكثرة في نسخ net الحديثة.
لشرح المميزة الاخيرة انظر المثال التالي:

بيئة العمل: Visual Studio 2012 و لغة #C


خطوات العمل:
1- افتح برنامج Visual Studio 2012  -->  NEW Project
2- اضف الى الفورم الادوات : ListView  و Button كما في الصورة


3- لأكمال مثالنا نحتاج الى كلاس جديد من خلال Progect-->Add Class  وليكن اسمه  Character
4- اضف الكود التالي الى الكلاس:
   public Character()
        {
        }

        public Character(string Name, Gender Sex, int Episodes)
        {
            this.Name = Name;
            this.Sex = Sex;
            this.Episodes = Episodes;
        }

        public string Name { get; set; }

       public Gender Sex { get; set; }

       public int Episodes { get; set; }

       public Image Image { get; set; }

        public Gender Parse(string Gender)
        {
            try
            {
                switch (Gender.ToUpper())
                {
                    case "MALE":
                        return LINQQuerySyntax.Gender.Male;

                    case "FEMALE":
                        return LINQQuerySyntax.Gender.Female;

                    default:
                        return LINQQuerySyntax.Gender.Male;
                }
            }
            catch
            {
                return LINQQuerySyntax.Gender.Male;
            }
        }

       
    }

   
    public enum Gender
    {
        
        Male,    
        Female
    } ;

  
}

اضف الكود التالي الى الزر
 IEnumerable<Character> results = from character in Characters
                                             where character.Episodes > 120
                                             select character;
            foreach (Character res in results)
            {
                var li = new ListViewItem { Text = res.Name };
                li.SubItems.Add(res.Sex.ToString());
                li.SubItems.Add(res.Episodes.ToString());

                listView1.Items.Add(li);
            }
الان عند تنفيذ البرنامج والنقر على الزر سنحصل على فقط القصص التي عدد صفحاتها اكثر من 120 صفحة

المزيد من التوضيح لاحقا

ليست هناك تعليقات:

إرسال تعليق