تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
افتراضي linQ to sql data الأستعلام من خلال لينك. وروعتها فى الأداء
#1
كاتب الموضوع : bedoonline


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

الحمد لله والصلاة والسلام على رسول الله وعلى آله وصحبه أما بعد:

موضوعنا اليوم يخص linQ لغه الأستعلامات الجديده من مايكروسوفت لعام 2008 . بصراحه لم أجد من شرح linq من قبل فقررت أن أشرح بعض الجمل والشروط لها لعلها تكون أفضل من ado.net فى الأستعلامات . .وإن شاء الله الشرح يقيدكم .

linq = language integrated query

لغه الأستعلام المترابطه أى هى لغه للإستعلام فقط
تتعامل مع كل أنواع قواعد البيانات و xml
تتعامل مع كل لغات .net
تتعامل مع كل من windows applications و asp.net
أنواع الأستعلامات الخاصه linq
تتعامل مع قواعد البيانات سكوالlinq to sql
تتعامل مع الداتا ست أو الداتا تابل الخاصه ب ad.net
linq dataset

مثل التعامل مع المصوفوفات linq to objects
linq to xml


لنكتفى من الكلام عن Linq لا بيعطى ولا بيجيب وندخل فى بناء الجمله داخل لينك
المعروف أخوانى فى جمله سيلكت الموجوده فى السكوال عامتاً تحتوى على syntax بالشكل ده
select * from employees where employeeid = 1 order by employeename asc
* = الصف كله
where employeeid = 1 يعنى عندما يكون رقم الموظف هوه 1
order by employeename asc ترتيب أسم الموظف أبجدياً

أعتقد إحنا نعرف الجمله دى
تعالى نبدء بال linq query syntax
from employees where employeeid =1 order by employeename asc select
الفكره فى linq أنك بتبدء من from والنهايه تكون select
سهله جداً


لندخل فى الأمثله وسنكتفى اليوم عن linq to objects وغداً بإذن الله تعالى linq to xml وعن linq to datset

1- linq to objects
أو شىء أستدعاء مكتبه
system.linq

مسأله واحد : لو أنا أريد أستنتاج الحروف الفرديه من مصفوفه معين ولتكن كالأتى


كود :
[color=#000000][COLOR=#0000bb]    Dim num [/color][color=#007700]As [/color][color=#0000bb]Integer[/color][color=#007700]() = {[/color][color=#0000bb]1[/color][color=#007700], [/color][color=#0000bb]5[/color][color=#007700], [/color][color=#0000bb]7[/color][color=#007700], [/color][color=#0000bb]10[/color][color=#007700], [/color][color=#0000bb]34[/color][color=#007700], [/color][color=#0000bb]54[/color][COLOR=#007700]}
    [/COLOR][color=#0000bb]Dim oddNum [/color][color=#007700]= [/color][COLOR=#0000bb]_
     From number In num _
     Where number Mod 2 [/COLOR][color=#007700]<> [/color][COLOR=#0000bb]0 _
     Order By number Descending _
     Select number  
[/COLOR][/COLOR]

شرح الكود
from number in num
هنا يقوم المترجم من وراء الكواليس بتحديد نوع الnumber ويجعله Integer لأنه بالطبع وجد أن In num
where number mod 2<>0 أى عندم يكون الرقم لا يقبل القسمه على 2
order by number descending تعنى ترتيب الأرقام تنازلياً
select number وهنا من الغريب فى هذه اللغه أنك من الممكن عدم كتابه select number لأن البرنامج يستطبع معرفه ماذا تريد

كيفيه إظهار النتائج فى listbox مثلاً سيتم عن طريق for each loop



كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]For [/color][color=#0000bb]Each number [/color][color=#007700]As [/color][COLOR=#0000bb]Integer In oddNum
    listbox1[/COLOR][color=#007700].[/color][color=#0000bb]items[/color][color=#007700].[/color][color=#0000bb]add[/color][color=#007700]([/color][color=#0000bb]number[/color][COLOR=#007700])
    [/COLOR][COLOR=#0000bb]Next  
[/COLOR][/COLOR]
هذه هى النتائج



ومن هنا أخوانى يمكن أن تستخدم linq to objects فى الأستعلام داخل الكلاسات
يعنى مثلاً لو عندنا كلاس خاص بعلومات عن المرضى فى مستشفى معينه

وكيفيه إنشاء الكلاس هيكون بالكود الأتى

كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]Public Class [/color][COLOR=#0000bb]Actor

  [/COLOR][color=#007700]Private [/color][color=#0000bb]_firstName [/color][color=#007700]As [/color][COLOR=#0000bb]String
  [/COLOR][color=#007700]Public [/color][color=#0000bb]Property FirstName[/color][color=#007700]() As [/color][COLOR=#0000bb]String
    Get
      [/COLOR][color=#007700]Return [/color][COLOR=#0000bb]_firstName
    End Get
    Set[/COLOR][color=#007700]([/color][color=#0000bb]ByVal value [/color][color=#007700]As [/color][color=#0000bb]String[/color][COLOR=#007700])
      [/COLOR][color=#0000bb]_firstName [/color][color=#007700]= [/color][COLOR=#0000bb]value
    End Set
  End Property

  [/COLOR][color=#007700]Private [/color][color=#0000bb]_lastName [/color][color=#007700]As [/color][COLOR=#0000bb]String
  [/COLOR][color=#007700]Public [/color][color=#0000bb]Property LastName[/color][color=#007700]() As [/color][COLOR=#0000bb]String
    Get
      [/COLOR][color=#007700]Return [/color][COLOR=#0000bb]_lastName
    End Get
    Set[/COLOR][color=#007700]([/color][color=#0000bb]ByVal value [/color][color=#007700]As [/color][color=#0000bb]String[/color][COLOR=#007700])
      [/COLOR][color=#0000bb]_lastName [/color][color=#007700]= [/color][COLOR=#0000bb]value
    End Set
  End Property

  [/COLOR][color=#007700]Private [/color][color=#0000bb]_birthDate [/color][color=#007700]As [/color][COLOR=#0000bb]Date
  [/COLOR][color=#007700]Public [/color][color=#0000bb]Property BirthDate[/color][color=#007700]() As [/color][COLOR=#0000bb]Date
    Get
      [/COLOR][color=#007700]Return [/color][COLOR=#0000bb]_birthDate
    End Get
    Set[/COLOR][color=#007700]([/color][color=#0000bb]ByVal value [/color][color=#007700]As [/color][color=#0000bb]Date[/color][COLOR=#007700])
      [/COLOR][color=#0000bb]_birthDate [/color][color=#007700]= [/color][COLOR=#0000bb]value
    End Set
  End Property

  [/COLOR][color=#007700]Private [/color][color=#0000bb]_country [/color][color=#007700]As [/color][COLOR=#0000bb]String
  [/COLOR][color=#007700]Public [/color][color=#0000bb]Property Country[/color][color=#007700]() As [/color][COLOR=#0000bb]String
    Get
      [/COLOR][color=#007700]Return [/color][COLOR=#0000bb]_country
    End Get
    Set[/COLOR][color=#007700]([/color][color=#0000bb]ByVal value [/color][color=#007700]As [/color][color=#0000bb]String[/color][COLOR=#007700])
      [/COLOR][color=#0000bb]_country [/color][color=#007700]= [/color][COLOR=#0000bb]value
    End Set
  End Property
End [/COLOR][COLOR=#007700]Class  
[/COLOR][color=#0000bb][/color][/COLOR]

وتصميم الكلاس عن طريق الdesign بهذا الشكل



الفكره حالياً كيفيه إضافه مرضى إلى هذا الكلاس بإستخدام Linq
أول شىء الفرق بين الإضافتين فى الfunctions وليكن patlist()
بالطريقه العاديه سيتم تعريف متغير من الكلاس الموجود

كود :
[color=#000000][COLOR=#0000bb]dim pat [/color][color=#007700]as new [/color][COLOR=#0000bb]patients
pat[/COLOR][color=#007700].[/color][color=#0000bb]firsname [/color][color=#007700]= [/color][COLOR=#dd0000]"mohammed"  
[/COLOR][color=#0000bb]pat[/color][color=#007700].[/color][color=#0000bb]secondname [/color][color=#007700]= [/color][COLOR=#dd0000]"ali"
[/COLOR][color=#0000bb]pat[/color][color=#007700].[/color][color=#0000bb]country [/color][color=#007700]= [/color][COLOR=#dd0000]"egypt "
[/COLOR][color=#0000bb]pat[/color][color=#007700].[/color][color=#0000bb]birthdat [/color][color=#007700]= [/color][COLOR=#ff8000]#2/5/1989#
[/COLOR][color=#0000bb]patients[/color][color=#007700].[/color][color=#0000bb]add[/color][color=#007700]([/color][color=#0000bb]pat[/color][COLOR=#007700])  
[/COLOR][color=#0000bb][/color][/COLOR]

أما بطريقه لينك


كود :
[color=#000000][COLOR=#0000bb]Dim pat1[/color][color=#007700]= [/color][color=#0000bb]patlist[/color][COLOR=#007700]()
    [/COLOR][color=#0000bb]Dim julypat [/color][color=#007700]= [/color][COLOR=#0000bb]_
     From pats In patients_
     Where pats[/COLOR][color=#007700].[/color][color=#0000bb]BirthDate[/color][color=#007700].[/color][color=#0000bb]Month [/color][color=#007700]= [/color][COLOR=#0000bb]7 _
     Order By pats[/COLOR][color=#007700].[/color][color=#0000bb]LastName[/color][color=#007700], [/color][color=#0000bb]pats[/color][color=#007700].[/color][COLOR=#0000bb]FirstName _
     Select pats  
[/COLOR][/COLOR]

وهنا نجد أن with تعود على الخصائص الموجوده فى الكلاس patients

كيفيه عمل أستعلام من الكلاس بإستخدام linq

اقتباس:
[TABLE="width: 100%"]
[TR]
[TD="class: alt2"]Dim patients= patlist()
Dim julypats = _
From pat In patients_
Where pat.BirthDate.Month = 7 _
Order By pat.LastName, pat.FirstName _
Select pat [/TD]
[/TR]
[/TABLE]

من وهذا الأستعلام نريد المرضى الذين أنجبوا فى شهر يوليو

.................................................. ...............................................

والله أخوانى حاسس أنى لم استطع توصيل المعلومه جيداً ولكنى سأحاول تعديل شرحى فى الداتا باس لأنها الأهم


ويارب أكون قدرت أوصل المعلومه لكم .. وسيتم شرح dataset قريباً بإذن الله
هذه كانت مقدمه بسيطه linq وكيف سيتم إستخدمها


والسلام عليكم ورحمه الله وبركاته
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الطباعة على الوورد من خلال الفيجوال بطريقة مبسطة abdullah 8 3,797 20-10-16, 03:55 PM
آخر رد: نجلاء سالم
  حصرياً ( إطبع على الوورد من خلال برنامجك ) ( شرح بالصور ) m.sami.ak 20 1,985 20-08-16, 11:53 PM
آخر رد: الوادي
  حصرياً على اليوتوب,,, إطبع على الوورد من خلال برنامجك ( شرح بالفيديو ) مبرمج أوتار 5 1,823 15-05-16, 05:06 PM
آخر رد: CLARO
  LINQ TO SQL C# And VB Net Abu Ehab 6 1,066 02-12-14, 04:53 PM
آخر رد: Abu Ehab
  @@@ تنفيذ كود vb.net من خلال مربع نص @@@ @@أبورائد@@ 18 3,839 27-10-14, 01:07 AM
آخر رد: hamaonline
  حصرياً على اليوتوب,,, إطبع على الوورد من خلال برنامجك ( شرح بالفيديو ) m.sami.ak 2 1,422 26-09-14, 04:47 PM
آخر رد: Zakhoy
  @@@ معالجة العمليات الحسابية من خلال مربع نص وإظهار النتيجة @@@ @@أبورائد@@ 9 1,594 25-05-13, 01:07 PM
آخر رد: shaker.soft
  التــعامل مع cmd من خلال الدوت نت مبتدئ في الاحتراف 2 531 24-04-13, 07:58 PM
آخر رد: مبتدئ في الاحتراف
  LINQ to Everything nadergliza 0 387 18-10-12, 12:50 PM
آخر رد: nadergliza
  معلومة How Make Data Types To Be Nullable RaggiTech 0 298 06-10-12, 07:51 PM
آخر رد: RaggiTech

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم