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

UpDate in Linq

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

UpDate in LINQ

بعد الحديث في اخر درس عن طريقة استخدام LinqDataSource , اليوم راح نتكلم عن عمل تحديث لقاعدة البيانات بأستخدام الـ LINQ .

طبعا كل شخص له طريقة خاصة في عمل التحديث على القاعدة اعتمادا على شكل عرض البيانات في موقعة لكن سأحاول انا اشرح الاساسيات لربما طريقة او طريقتين لفهم المبدأ وبعدها تعمل ما تريد .

اولآ: لنبدأ بطريقة التحديث بالكود لو نرجع الى درس الاضافة وطريقة عمله حيث اننا نعرف object من الجدول الذي نريد الاضافة له وبعدها نشير الى حقولة مع الادوات التي سوف ندخل بها البيانات.

في البداية راح نكتب كود بدون استخدام أي ادوات لأدخال البيانات :

- لنفتح صفحة جديدة ونضع Button ونضغط دبل كليك لتفعيل حدث الـ Click ونكتب بداخل الحدث

        LinqtutorialDataContext db = new LinqtutorialDataContext();
        var Emp = db.Employees.SingleOrDefault(p => p.EmpID == 1);
        Emp.EmpName = "Ali";
        db.SubmitChanges();

بكل بساطة ما فعلته في الكود اخترت الموظف الذي يحمل ID رقم 1 وبعدها عملت تعديل على حقل الاسم الى Ali , اعمل هذا الكود والقي نظرة على الجدول .

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

اولآ: امسح كل ما موجود في الصفحة وضع هذا الشكل:

        <table>
            <tr>
                <td colspan="3" align="center"><span style=" color:#555; font-size:20px;">Employee List</span></td>
            </tr>
            <tr>
                <td>
                    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
                    </asp:GridView>
                </td>
                <td>
                    <asp:LinqDataSource ID="LinqDataSource1" runat="server">
                    </asp:LinqDataSource>
                </td>
            </tr>
        </table>
        <br />
        <table>
            <tr>
                <td><span style=" color:#555; font-size:17px;">Employee ID</span></td>
                <td><asp:TextBox ID="TextBox_Id" runat="server"></asp:TextBox></td>
                <td><asp:Button ID="Button_loadInfo" runat="server" Text="Load details" 
                        onclick="Button_loadInfo_Click" /></td>
            </tr>
            <tr>
                <td><span style=" color:#555; font-size:17px;">Employee Name</span></td>
                <td><asp:TextBox ID="TextBox_Name" runat="server"></asp:TextBox></td>
            </tr>
            <tr>
                <td><span style=" color:#555; font-size:17px;">Employee Age</span></td>
                <td><asp:TextBox ID="TextBox_Age" runat="server"></asp:TextBox></td>
            </tr>
            <tr>
                <td><span style=" color:#555; font-size:17px;">Employee Department</span></td>
                <td>
                    <asp:DropDownList ID="DropDownList_Deprt" runat="server">
                    </asp:DropDownList>
                </td>
                <td>
                    <asp:LinqDataSource ID="LinqDataSource2" runat="server">
                    </asp:LinqDataSource>
                </td>
            </tr>
            <tr>
                <td colspan="3">
                    <asp:Button ID="Button_update" runat="server" onclick="Button1_Click" Text="UPDATE" />
                </td>
            </tr>
        </table>

لنقم بتعديل الـ LinqDataSource1 لتستعرض جدول الموظفين وربطها مع GridView1 .

لنقم بتعديل الـ LinqDataSource2 لتستعرض جدول الاقسام ونربطها مع اداة

DropDownList_Deprt

وطريقة الربط بـ DropDownList_Deprt بعد استعراض الجدول في LinqDataSource2 نحدد DropDownList_Deprt ونفتح السهم اعلى اليمين الموجود في الاداة ونختار Chooes Data Source , راح تظهر لنا ثلاث خيارات

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

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

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

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

الان لنفعل حدث الـ Click للـ Button_loadInfo ونكتب فيه

    LinqtutorialDataContext db = new LinqtutorialDataContext();
        int Id = Convert.ToInt32(TextBox_Id.Text);
        Employee EmpInfo = db.Employees.Single(p => p.EmpID == Id);
        TextBox_Name.Text = EmpInfo.EmpName.ToString() ;
        TextBox_Age.Text = EmpInfo.EmpAge.ToString();
        DropDownList_Deprt.SelectedValue = EmpInfo.DepID.ToString();

قبل شرح الكود المكتوب اعلى لنستعرض الصفحة ونكتب في الـ textbox المقابل لي

EmployeeID رقم 1 وبعدها نضغط على رز Load details ولاحظ ماذا يحدث.

نلاحظ ان بيانات الموظف تعرض في الـ textboxs و الـ DropDownList تعرض ماهو القسم الذي ينتمي له هذا الموظف

شرح الكود: بكل بساطة استخدمت طريقة تعريف object لكن في هذا الكود عملت العكس حيث اني جعلت الادوات تستعرض ببيانات الحقول اعتمادا على رقم الـ ID المكتوب.

لننتقل الى اخر مرحلة وهي مرحلة التعديل على البيانات , طبعا اخر شيئ عملناه هو استرجاع البيانات في الادوات والمقصد من الادوات هي Textboxs كل ماسنفعلة هو تغير هذه البيانات وحفظها مع العلم لن نعمل أي تغير في الـ textbox الخاص بـ ID ( يعني فقط سوف نعمل تعديل على الاسم – العمر – والقسم).

لنبدأ:

لنقم بتفعيل حدث الـ Click لل Button_update ونكتب الكود التالي:

        LinqtutorialDataContext db = new LinqtutorialDataContext();
        int Id = Convert.ToInt32(TextBox_Id.Text);
        int age = Convert.ToInt32(TextBox_Age.Text);
        var update = db.Employees.Single(p => p.EmpID == Id);
        // TODO: take value from textboxs.
        update.EmpName = TextBox_Name.Text;
        update.EmpAge = age;
        update.DepID = Convert.ToInt32(DropDownList_Deprt.SelectedValue);
        db.SubmitChanges();
        GridView1.DataBind();

استعرض الصفحة ولنعمل تغير ونلاحظ ماذا يحدث بعد التعديل سنلاحظ التغير يظهر في الـ GridView .

مثل الطريقة عملنا object واشرنا الى الحقول بأنها تأخد البيانات من الادوات

اعتمادا على الـ ID الموجود في اول textbox

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

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

good luck

My Latest

Hello Entity Framework Code First

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

#2

شكرا لك أخي الكريم على هذا الدرس

مع ان هذا الشكر لم يأتي إلا بعد 5 أشهر من وضعه!!!!!

ولكن اتعجب ! ألم ير أي أحد هذا الدرس ويعلق عليه !!!!!!!!!!!!!!!!!!!!

الله أكبر الله أكبر الله أكبر لآ إله إلا الله الله أكبر الله أكبر ولله الحمد

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