الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استخدام LinqDataSource في الـ LINQ

بدأه D a r K T o u c h في 11 نوفمبر 2010 · 1 رد · 879 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

ونكمل الحديث عن تقنية الـ LINQ وفي درسنا هذا سوف نتحدث عن LinqDataSource , بكل بساطة هذه الاداة لا تختلف عن SqlDataSource من حيث التعامل مع قاعدة البيانات ولكن الشي الزائد في اعتقادي الشخصي وكما تعلمنا في الدروس السابقة كيفية التعامل مع Linq بأستخدام الكود , تصور عزيزي القارئ دمج الاثنين مع بعض ستكون النتيجة تحكم شامل بقاعدة البيانات من ناحية عرض البيانات او تعديل البيانات وايضا الحدف .

اعتقد الكثير من مستخدمي الـ asp.net استخدمو SqlDataSource فلن اجد صعوبة في شرح LinqDataSource , كما قلت لا تختلف في طريقة التعامل, لندع الحديث قليلا ونبدأ بتجربة بسيطة للـ LinqDataSource

لنبدأ بعمل صفحة جديدة ووضع GridView و LinqDataSource , وكما ذكرت سابقا التعامل مع LinqDataSource مشابهه للـ SqlDataSource بعد وضع الادوات في الصفحة:

1- نذهب الى اداة LinqDataSource ونفتح الـ LinqDataSource

Tasks المقصد السهم الصغير الموجود على يمين الاداة.

2- نختار Configure Data Source.

3- طبعا راح تظهر لنا الـ DataContext الخاصة بنا وطبعا تعلمنا طريقة عملها في الدرس الاول حيث اننا نعمل ملف App_Code ونضيف له ملف linq to sql Classes بعدها راح يفتح لنا الـ model ونقوم بسحب الجدول الذي راح نتعامل معاه الخ..

4- بعد اختيار DataContext نختار Next راح تفتح لنا نافذة مثل الصورة

post-224629-008116800 1289487351_thumb.j

لو نلاحظ شكلها مشابهه الى SqlDataSource دعنا نختار من قائمة الجداول جدول الـ Employees ونختار Finish ونربط الـ GirdView

5- نفتح الصفحة على المتصفح ونرى النتيجة

============

لاتختلف طريقة التعامل مع الـ Gridview المربوطة بأداة لجلب البيانات حيث تستطيع اخفاء عمود اظهار عمود وتعديل اسامي الاعمدة الخ..

وايضا نستطيع الحدف والتعديل لكن انا شخصيا افضلها بالكود وذكرنا الاضافة في الدرس السابق , ان شاء الله في دروس قادمة نتحدث عن التعديل والحدف بأكثر من طريقة ولا يوجد مانع عزيزي القارئ من المحاولة.

ملاحظة : من يريد المحاولة للحدف والتعديل بأستخدام الـ gridview مباشرة وارد تفعيل الحدف والتعديل من خلال LinqDataSource عند اختيار الحقول مثل الصورة في الاعلى ضع التحديد على ( * ) لتتفعل كلمة Advanced وبعدها اختار العملية التي ترديها من النافذة التي راح تظهر لنا سواء ان كانت حدف او تعديل او اضافة.

معلومة:

لا ننسى ان الـ LinqDataSource تحتوي على Event وهي جدا ممهمة , لان نستطيع من خلالها استخدام LinqDataSource وفي نفس الوقت كتابة كود بـ LINQ

بصراحة انا ذكرت قبل انها مشابهة الى SqlDataSource فقط هذه المعلومات التي استطيع ان اوضحها لك عزيزي القارئ وللعلم اكيد توجد معلومات انا لم اتكلم عنها

لكن قبل مااختم الدرس لنعمل مثال متقدم قليلا نعمل فيه اضافة الى جدول الموظفين لكن بأستخدام الـ LinqDataSource في التعامل مع الاضافة.

لنبدأ

في بداية الامر نمسح الاشياء الموجود في الصفحة ونعمل هذه الاعدادات

    <table>
        <tr><td><b>Employee Managment</b></td></tr>
        <tr>
            <td>
                <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px">
                </asp:DetailsView>
            </td>
        </tr>
        <tr>
            <td>
                <asp:LinqDataSource ID="LinqDataSource1" runat="server">
                </asp:LinqDataSource>
            </td>
            <td>
                <asp:LinqDataSource ID="LinqDataSource2" runat="server">
                </asp:LinqDataSource>
            </td>
        </tr>
    </table>

- بعدها نفتح اعدادات LinqDataSource1 ونختار جدول الموظفين ونعمل التحديد على ( * ) ونحدد على خيار Advanced ونحدد عملية الاضافة ( طبعا راح يكون ثاني خيار )

- نربط اداة DetailsView1 مع LinqDataSource1.

- نحدد DetailsView1 ومن نافذة الخيارات (Properties) نغير الاعدادات DefaultMode من ReadOnly الى Insert وبعدها نرجع على الاداة ونفتح السهم الموجود اعلى يمين الاداة ونحدد على Enable Inserting

- في نفس القائمة نختار Edit Fields راح تظهر لنا نافذة فيها اسماء الحقول احنا المهم او الحقل الي راح نعمل عليه تغير هو حقل DepID نحدد الحقل وبعدها نضغط على كلمة Convert this field inti a TemplateField وبعدها نختار موافق

- راح يظهر لنا تغير في شكل الصفحة مثل هذا

                        <asp:TemplateField HeaderText="DepID" SortExpression="DepID">
                            <EditItemTemplate>
                                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("DepID") %>'></asp:TextBox>
                            </EditItemTemplate>
                            <InsertItemTemplate>
                                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("DepID") %>'></asp:TextBox>
                            </InsertItemTemplate>
                            <ItemTemplate>
                                <asp:Label ID="Label1" runat="server" Text='<%# Bind("DepID") %>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

هنا عزيزي القارئ اريد منك التركيز لان راح نعمل تغيرات بسيطة .. لنبدأ

- لنمسح اول هذا الجزء

                            <EditItemTemplate>
                                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("DepID") %>'></asp:TextBox>
                            </EditItemTemplate>

لان هذا الجزء خاص بوقت التعديل واحنا في مثالنا فقط نريد ان نعمل اضافة.

نعمل تغير مثل هذا

                            <InsertItemTemplate>
                                <asp:DropDownList ID="DropDownList1" runat="server">
                                </asp:DropDownList>  
                            </InsertItemTemplate>

كل الي عملناه هو اضافة DropDownList.

الان دعنا نرجع الى اداة LinqDataSource2 ونفتح الاعدادات ونختار جدول الاقسام.

بعدها نرجع الى DetailsView1 ونفتح قائمة الخيارات ( السهم الصغير اعلى اليمين ) ونختار اخر خيار Edit Templates

راح تلاحظ انه يفتح لك قائمة على اليمين اختار منها insertItemTemplate

مثل الصورة

post-224629-080928400 1289487371_thumb.j

بعدها ننتقل الى اداة الـ DropDownList ونفتح السهم الصغير ونختار Chooes Data Source وهذه الطريقة اكثر الاشخاص الي تعاملوا مع SqlDataSource تكون سهلة بالنسبة لهم .

بعد ما نختار Chooes Data Source راح تفتح نافذة جديدة بها ثلاث خيارات

الخيار الاول : نختار LinqDataSource2

الخيار الثاني: نختار DepName

الخيار الثالث: DepID

وبعدها موافق.

ونعيد فتح السهم الموجود في الـ DropDownList ونختار DataBindings

راح تظهر لنا نافذة مثل الصورة

post-224629-012147500 1289487380_thumb.j

( نعمل مثل الخيارات الموضحة في الصورة )

وبعدها موافق.

ولننهي العملية نختار السهم الموجود لأداة DetailsView1 ونختار End Template Editing

الان وقبل ما نعمل تجربة للمثال لنضع اداة GridView في أي مكان تريد على حسب رغبتك ونربطها بـ LinqDataSource ونختار جدول الموظفين.

وبعدها نحدد DetailsView1 ومن قائمة الاحداث (Event) نختار حدث ItemInserted

ونكتب فيه هذا السطر البسيط

GridView1.DataBind();

الان لنستعرض الصفحة ونعمل اضافة.

في الختام اخواني ان شاء الله يكون الشرح مفهوم واسف على الانقطاع بسبب الدراسة

وجاري العمل على درس التعديل

Good luck

المرفقات
6.JPG7.JPG8.JPG

My Latest

Hello Entity Framework Code First

--------------------

#2

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

بصراحة أخي الكريم أنا متلك تماما مهووووووووووس بهالتقنية . من اول ما أجت مع الـ .Net 3 و انا عم اشتغل فيها يعني صراحة ما بلومك لو حطيت عنها ألف مقالة هههههههههه و لربما يكون بالأيام القادمة عندي وقت لحتى أكتب عن التقتيات المرتبطة :

Linq To Objects

Linq To DataSets

Linq To SQL

Linq To XML

طبعا مع الـ Lambda Expression و الـ Anonymous Types و الـ Extension Methods و ... يعني غيرت كتير من طرق كتابتنا للكود في .Net

طبعا بالتأكيد بشكرك باسم جميع الأعضاء على جهودك في نشر مقالات عن Linq.

تم تعديل هذه المشاركة بواسطة imadouzoun في 13 نوفمبر 2010 في 00:40

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

مواضيع مشابهة