asp.net ﻲﻓlinq to sql ﺔﻳﻧﻘﺗ ﻡﺍﺩﺧﺗﺳﺃ€¦ · ﻲﻧﺎﺛﻟﺍ...

15
ﺍﻟﺩﺭﺱ ﺍﻟﺛﺎﻧﻲ ﺃﺳﺗﺧﺩﺍﻡ ﺗﻘﻧﻳﺔLinq To SQL ﻓﻲAsp.net ﺑﺳﻡ ﷲ ﺍﻟﺭﺣﻣﻥ ﺍﻟﺭﺣﻳﻡ... ﻓﻲ ﺍﻟﺩﺭﺱ ﺍﻟﺳﺎﺑﻕ ﻗﻣﻧﺎ ﺑﺄﻭﻝ ﻋﻣﻠﻳﺔ ﻭﻫﻲ ﺍﻷﺿﺎﻓﺔ ﻭﻗﺩ ﻗﻣﻧﺎ ﺑﺄﺿﺎﻓﺔ ﺗﺻﻧﻳﻑ. ﺍﻻﻥ ﻭﻗﺑﻝ ﺃﻥ ﻧﺑﺩﺃ ﻧﺿﻳﻑ۳ ﺑﻭﺗﻭﻥ) Button ( Button2 ﺃﺿﺎﻓﺔ ﺗﺻﻧﻳﻑButton3 ﺣﺫﻑ ﺗﺻﻧﻳﻑButton4 ﺗﻌﺩﻳﻝ ﺗﺻﻧﻳﻑ. ﻗﺑﻝ ﺍﻟﻌﻧﺻﺭ ﻧﺿﻳﻑ ﺍﻟﺑﻭﺗﻭﻧﺎﺕ ﺍﻋﻼﻩMultiview ﻟﻳﺻﺑﺢ ﻛﻭﺩ ﺍﻟﺻﻔﺣﺔ ﻫﻛﺫﺍ: <%@ Page Title="" Language="C#" MasterPageFile="~/Sit e.master" AutoEventWireup="true" CodeFile="Manage.asp x.cs" Inherits="Manage" %> <asp:Content ID="Content1" ContentPlaceHolderID="Head Content" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="Main Content" 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> ﻋﻨﻮﺍﻥ ﺍﻟﺼﻨﻒ

Upload: others

Post on 18-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

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

الدرس الثاني

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> الصنف عنوان

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

</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>

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

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

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

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

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>

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

&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>

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

&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>

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

</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(نبدأ ب :ادناه

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

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

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

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

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

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

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

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

وهو للعرض في 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();

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

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(خصائص الـ

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

: Buttonوخصائص

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

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

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

:بعد ذلك

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

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

ومن السمارت تاك أنقر على 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 هو معامل االدخال وعلى يمينها التعبير لذلك هذه دالة بسيطة لجمع المعامل مع نفسها) <=(على يسار

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

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

.شرط وضع أستخدمنا تعبير الالمبدا في 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

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

محمد الساعدي