Asp.net ﻲﻓLinq To SQL ﺔﻳﻧﻘﺗ ﻡﺍﺩﺧﺗﺳﺃ€¦ · ﻲﻧﺎﺛﻟﺍ...

Preview:

Citation preview

الدرس الثاني

Asp.netفي Linq To SQLأستخدام تقنية

...بسم هللا الرحمن الرحيم

.في الدرس السابق قمنا بأول عملية وهي األضافة وقد قمنا بأضافة تصنيف

) Button(بوتون ۳نضيف االن وقبل أن نبدأ

Button2 – أضافة تصنيف

Button3 – حذف تصنيف

Button4 – تعديل تصنيف.

:ليصبح كود الصفحة هكذا Multiviewنضيف البوتونات اعاله قبل العنصر

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Manage.aspx.cs" Inherits="Manage" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server"> <div dir="rtl" > <asp:Button ID="Button2" runat="server" Text="أضافة </ "تصنيف &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <asp:Button ID="Button3" runat="server" Text="حذف </ "تصنيف &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <asp:Button ID="Button4" runat="server" Text="تعديل </ "تصنيف <asp:MultiView ID="MultiView1" runat="server"> <asp:View ID="View1" runat="server"> <table style="width: 100%;"> <tr> <td> الصنف عنوان

</td> <td> &nbsp; <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </td> <td> &nbsp; <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ValidationGroup="SaveCategory">فارغ الحقل </asp:RequiredFieldValidator> </td> </tr> <tr> <td colspan="3"> &nbsp; &nbsp; &nbsp; <hr /> </td> </tr> <tr> <td> &nbsp; </td> <td> &nbsp; <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="حفظ" ValidationGroup="SaveCategory" /> </td> <td> &nbsp; </td> </tr> </table> </asp:View> </asp:MultiView> </div> </asp:Content>

:وفي الكود الخلفي للبوتونات نكتب

protected void Button2_Click(object sender, EventArgs e) { MultiView1.ActiveViewIndex = 0; } protected void Button3_Click(object sender, EventArgs e) { MultiView1.ActiveViewIndex = 1; } protected void Button4_Click(object sender, EventArgs e) { MultiView1.ActiveViewIndex = 2; }

.من أجل أستعراض الفيو عند النقر على أحد البوتونات

داخل ) View(ليصبح عدد ) View(نضيف أثنين Multiviewثم داخل العنصر )Multiview ( ثالثة.

:نضيف العناصر التالية View2ثم داخل

Table

DropDownLinst

Button

Horizontal Rule

:نضيف العناصر التالية ) View3(وداخل ال

Table

DropDownList

Textbox

Required Field Validation

Horizontal Rule

Button

:لتصبح هكذا

:اما كود الفيوات هكذا يصبح

<asp:MultiView ID="MultiView1" runat="server"> <asp:View ID="View1" runat="server"> <table style="width: 100%;"> <tr> <td> الصنف عنوان </td> <td>

&nbsp; <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </td> <td> &nbsp; <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ValidationGroup="SaveCategory">فارغ الحقل </asp:RequiredFieldValidator> </td> </tr> <tr> <td colspan="3"> &nbsp; &nbsp; &nbsp; <hr /> </td> </tr> <tr> <td width="30%"> &nbsp; </td> <td> &nbsp; <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="حفظ" ValidationGroup="SaveCategory" /> </td> <td> &nbsp; </td> </tr> </table> </asp:View> <asp:View ID="View2" runat="server"> <table style="width: 100%;"> <tr> <td dir="rtl" width="30%"> &nbsp; الصنف عنوان</td> <td>

&nbsp; <asp:DropDownList ID="DropDownList1" runat="server" Width="150px"> </asp:DropDownList> </td> <td> &nbsp; </td> </tr> <tr> <td colspan="3"> &nbsp; &nbsp; &nbsp; <hr /> </td> </tr> <tr> <td> &nbsp; </td> <td> &nbsp; <asp:Button ID="Button5" runat="server" Text="حذف" /> </td> <td> &nbsp; </td> </tr> </table> </asp:View> <asp:View ID="View3" runat="server"> <table style="width:100%;"> <tr> <td width="30%"> <td/>القديم الصنف ;nbsp&عنوان <td> <asp:DropDownList ID="DropDownList2" runat="server" Width="150px"> </asp:DropDownList> </td> <td> &nbsp;</td>

</tr> <tr> <td> <td/>الجديد الصنف عنوان <td> <asp:TextBox ID="TextBox2" runat="server" Width="150px"></asp:TextBox> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2" ValidationGroup="EditCategory">فارغ الجديد العنوان</asp:RequiredFieldValidator> </td> </tr> <tr> <td colspan="3"> <hr /> </td> </tr> <tr> <td> &nbsp;</td> <td> <asp:Button ID="Button6" runat="server" Text="تعديل" ValidationGroup="EditCategory" /> </td> <td> &nbsp;</td> </tr> </table> </asp:View> </asp:MultiView>

كما في الصور DropDownList1الخاص بالحذف نضع المؤشر على ) View2(نبدأ ب :ادناه

: Choose DataSourceونختار Smart Taqننقر على

: New DataSourceنختار Select AdataSourceومن

: LINQوبعد ذلك نختار

أتركها على حالها ثم على Contextحيث ستظهر لك شاشة تطلب منك أختيار ، OKثم Next :

: Category1و IDونختار الحقلين ، Categoriesنختار Tableمن ، بعدها

وهو للعرض في Category1ثم ستظهر الشاشة أدناه في الحقل االول نختار ۱DropDownList وفي الحقل الثاني نختارID وهو لValue لDropDownList1 :

.لكي يفتح صفحة الكود الخلفي ونكتب الكود أدناه للحذف ، ثم نقرتين على زر حذف

protected void Button5_Click(object sender, EventArgs e) { using (DataClassesDataContext contx = new DataClassesDataContext()) { contx.Connection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["LibraryDBConnectionString"].ConnectionString; var Categoryobject = from c in contx.Categories where (c.ID == Convert.ToInt16(DropDownList1.SelectedValue.ToString())) select c; contx.Categories.DeleteAllOnSubmit(Categoryobject); contx.SubmitChanges();

DropDownList1.DataBind(); MultiView1.ActiveViewIndex = 1; } }

ثم أسندنا له نص االتصال مع قاعدة ، الكود أعاله بدأنا بتعريف كائن من نوع داتا كونتكس ) Var(من اجل ان نصل الى الحقل المحدد وحفظناه في متغير عام Linqالبيانات ثم أستعالم

ثم قمنا بحذف هذا السجل من الداتا كونتكس بعدها قمنا بحفظ هذا ) Categoryobject(أسمه التغيرات التي أجرينا على الداتا كونتكس وحفظناها على قاعدة البيانات من أجل ان يحذف

بعد ذلك جعلنا ) DropDownList1(ثم قمنا بعمل تحديث لـ السجل المحدد من قاعدة البيانات Multiview الن أي بوتون يسبب ) يبدأ من الصفر االندكس ترقيم ألن (يعرض الفيو الثاني

PostBack ميل الصفحة جعلنا الفيو بالتالي يعني أعادة تحميل الصفحة ونحن في حدث تح !.اليس هذا سهل أم ال ؟ .االول ينعرض

:من عملية الحذف االن نأتي الى الحذف االن أنتهينا

:نضع العناصر التالية ليكون الشكل هكذا View3في

:هي ) Controls(العناصر

Table

DropDownList

TextBox

Required Field Validator

Horizontal Rule

Button :

) Required Field Validato(خصائص الـ

: Buttonوخصائص

) Category(مع الجدول DropDownList2نبدأ بربط

Linq(ألننا ال نحتاج الى ) Linq Data Souce1(نختار ) Select Data Source(ثم من Data Source ( اخرى مادام هذه تفي بالغرض:

:بعد ذلك

:ثم Okانقر على ) Category1و ID(اذا لم تظهر لك

ومن السمارت تاك أنقر على DropDownList2ثم ارجع الى Finishوبعد ذلك Nextثم Choose Data Source واختر الحقل حيث في االول يكون)Category1 ( وهو للعرض ،

.وهو للقيمة ) ID(والثاني

:نكتب الكود أدناه ) تعديل (وتون في لبفي الكود الخل

protected void Button6_Click(object sender, EventArgs e) { using (DataClassesDataContext contx = new DataClassesDataContext()) { contx.Connection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["LibraryDBConnectionString"].ConnectionString; var Categoryobject2 = contx.Categories.Single (p => p.ID == Convert.ToInt16(DropDownList2.SelectedValue.ToString())); Categoryobject2.Category1 = TextBox2.Text; contx.SubmitChanges(); DropDownList1.DataBind(); DropDownList2.DataBind(); MultiView1.ActiveViewIndex = 2; TextBox2.Text = string.Empty; } }

ثم جعلناه ياخذ قيمة حقل ) Categoryobject2(الكود أعاله فيه شي جديد وهو عرفنا كائن أسمه المبدا طويل وعريض والكالم عن ا) Lampda Expression(معين عن طريق أستخدام تعبير المبدا :ة تستخدم ألنشاء تعابير شجرية مثال بسيط عليها هوللكن بأختصار هي عبارة عند دوال مج

R=> R +R هو معامل االدخال وعلى يمينها التعبير لذلك هذه دالة بسيطة لجمع المعامل مع نفسها) <=(على يسار

. ها في االنترنت أنصحكم بقرائتها هناك المئات من المقاالت عليوهي مفيده جدا و

.شرط وضع أستخدمنا تعبير الالمبدا في Button 6في كود

ثم حفظنا ) Category1(قمنا بحفظ قيمة التيكس بوكس في الحقل ذلك نعود الى الكود ثم بعد !مافي االمر اليس سهال ومختصر ام ال ؟هذا كل . المتغيرات ككل

وطبقنا العمليات االضافة والحذف والتعديل وحتى العرض ) Categories(االن انتهينا من الجدول .في الدروب داون لست

الن هذه الدروس مقتصرة فقط لى تصميم مظهر للموقع في هذه الدروس لم نتطرق ا: مالحظة مهمة الطبقات Ntierكذلك هذا الطراز من البرمجة يسمى . Asp.netفي Linq To SQLعلى أستخدام

حيث قمنا بتقسيم المشروع الى ثالثة أجزاء هي طبقة البيانات المتمثلة )دة الطبقات البرمجة متعد( لعرض الصفحات والجداول وطبقة ا) Data Class(لــــ ائناتها وطبقة العمل المتمثلة بابالداتا بيس وك

.الخواالكواد التي كتبناها في الواجهات

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

)ManageBook.aspx . (

:رابط الدرس االول

http://mohamediddan.wordpress.com/2013/08/13/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%AA%D9%82%D9%86%D9%8A%D8%A9-linq-to-sql-%D9%81%D9%8A-asp-net-%D8%A7%D9%84%D8%AF%D8%B1%D8%B3-%D8%A7%D9%84%D8%A7%D9%88%D9%84/

..........يمكنكم زيارة مدونتي لألطالع على دروس أخرى

hamediddan.wordpress.com/http://mo

تقبلوا تحياتي

محمد الساعدي

Recommended