چهارعمل اصلی (CRUD) توسط LINQ در ASP.NET

شنبه 30 خرداد 1394

در این مقاله نحوه عملیات delete ، insert، update و Select رکورد در بانک اطلاعاتی توسط LINQ را خواهید آموخت.

چهارعمل اصلی (CRUD) توسط LINQ در ASP.NET

ابتدا بانک اطلاعاتی با نام LinqToSqlDB ساخته و دو جدول در آن با نام های Departments و Employees بسازید.

از اسکریپت زیر برای ساخت و پر کردن جداول استفائه نمایید.

جدول Departments

Create table Departments
(
Id int primary key identity,    
depart nvarchar(50),   
)  
Insert into dep values (N'شبکه') 
Insert into dep values (N'فروش') 
Insert into dep values (N'پشتیبانی') 

جدول Employees

Create table Employees    
(    
ID int primary key identity,    
FirstName nvarchar(50),    
LastName nvarchar(50),    
Gender nvarchar(50),    
Salary int,    
DepartmentId int foreign key references Departments(Id)    
)    
  
Insert into Employees values (N'بردیا',N'اجاقی', N'مذکر', 32000, 1)    
Insert into Employees values (N'علی', N'تعمیمی', N'مدکر', 23000, 3)    
Insert into Employees values (N'نرگس',N'محمدی',N'مونث', 8000, 1)    
Insert into Employees values (N'زهرا',N'چگینی',N'مونث', 8000, 2)    
Insert into Employees values ('احسان',N'حسینی',N'مذکر', 12000, 2)

کسانی که وقت کافی برای ساخت بانک و جداول ندارند می توانند فایل نصبی موجود در پوشه ضمیمه را نصب کنند سپس از این قسمت شروع به ساخت پروژه نمایند.

 

یک پروژه ASP.NET با نام LINQtoSQL می سازیم.

سپس به قسمت Server Explorer رفته، کلیک راست کرده و روی Add Connection کلیک می کنیم. مانند شکل تنظیمات سرور را تنظیم کرده تست گرفته و کانکشن را اضافه می نماییم.

در Solution Explorer روی نام پروژه کلیک راست کرده و از قسمت Data یک Linq to SQL Classes با نام Sample می سازیم.

در Server Explorer جداول Employees و Departments را روی صفحه کشیده و رها می کنیم.

کدهای زیر را در body صفحه Webform1.aspx کپی نمایید.

<form id="form1" runat="server">
        <asp:Button ID="btnGetData" runat="server" Text="GetData" OnClick="btnGetData_Click" />       
        <asp:Button ID="btnInsert" runat="server" Text="Insert" OnClick="btnInsert_Click"  />       
        <asp:Button ID="btnUpdate" runat="server" Text="Update" OnClick="btnUpdate_Click" />    
        <asp:Button ID="Button4" runat="server" Text="btnDelete" OnClick="Button4_Click" />    
        <br />    
        <asp:GridView ID="GridView1" runat="server"></asp:GridView> 
    </form>

برای دستور Select از دستورات زیر استفاده می کنیم.

            SampleDataContext dbContext = new SampleDataContext();
            GridView1.DataSource = dbContext.Employees;
            GridView1.DataBind();

برای دستور Insert از دستورات زیر استفاده می کنیم.

            using (SampleDataContext dbContext = new SampleDataContext())
            {
                 Employee emp = new Employee
                {
                    FirstName = "سجاد",
                    LastName = "باقرزاده",
                    Gender = "مذکر",
                    Salary = 55000,
                    DepartmentId = 1,
                };
                dbContext.Employees.InsertOnSubmit(emp);
                dbContext.SubmitChanges();
            }
            GetData();

در کد بالا در انتهای دستور ()GetData فراخوانی شده است که همان دستور Select است که به دلیل استفاده زیاد به عنوان یک متد با نام GetData در نظر گرفته شده است.

برای دستور Delete از دستورات زیر استفاده می کنیم.

            using (SampleDataContext dbc = new SampleDataContext())
            {
                Employee emp = dbc.Employees.SingleOrDefault(x => x.ID == 2);
                dbc.Employees.DeleteOnSubmit(emp);
                dbc.SubmitChanges();
            }
            GetData();

در کد بالا رکورد دوم از جدول Employees پاک می شود.

x => x.ID == 2

در نهایت برای دستور Update از دستورات زیر استفاده می کنیم.

            using (SampleDataContext dbc = new SampleDataContext())
            {
                Employee emp = dbc.Employees.SingleOrDefault(x=>x.ID == 3);
                emp.Salary = 95000;
                dbc.SubmitChanges();
            }
            GetData();

در کد بالا فیلد Salary رکورد سوم از جدول Employees از 8000 به 95000 بروزرسانی (Update) می شود.

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید