تبليغاتX
UNiComp.iR | Download Direct Tutorials Video , Film | دانلودمستقیم فیلم آموزشی،کتاب،جزوه،مقاله

Linq اطلاعات در Insert-Update-delete چگونگی


سلام دوستان امید واردم اولین مقاله در مورد لینک رو مطالعه نموده باشید، چون مقاله امروز رو  در ادامه اون می نویسم و به اطلاعات موجود در مقاله اول برای مقاله جدید احتیاج خواهیم داشت.

برای آغاز کار جدولی به نام Test با مشخصات زیر ایجاد می کنیم، می خواهیم فرایند های Add، Delete و Update اطلاعات توسط LINQ رو بررسی کنیم.

توجه نمایید که فیلد ID را که کلید جدول است را به صورت Identity Auto در آورید.

در Visual Studio 2008  یک WindowsFormApplication جدید ایجاد می کنیم همان طور که به یاد دارید برای استفاده از Linq در برنامه نیاز به اضافه نمودن Namespace های زیر دارید.

using System.Linq;

using System.Data.Linq;

using System.Data.Linq.Mapping;

غیر از Namespace های پیش فرض namespace های بالا را نیز به برنامه اضافه می نماییم.(دقت نمایید برای  استفاده از Namespace های بالا ، شما احتیاج به reference دادن به assembly ، system.data.linq خواهید داشت)

از آنجای که می خواهیم از Transaction در هنگام Insert استفاده نماییم، ابتدا assembly ، system.transaction را اضافه می کنیم سپس namespace  زیر را نیز مورد استفاده قرار می دهیم

using System.Transactions;

ابتدا با اضافه نمودن یک کلاس همنام با جدولمان یعنی Test ، Schema جدول را معرفی می نماییم.

        [Table(Name = "dbo.Test")]

        public class Test

        {

            [Column(DbType = "int not null", IsPrimaryKey = true, IsDbGenerated = true)]

            public int ID;

            [Column(Name = "LastName", DbType = "nvarchar NOT NULL")]

            public string LastName;

            [Column(Name = "FirstName", DbType = "nvarchar NOT NULL")]

            public string FirstName;

        }

به نحوه تعریف فیلد ID دقت کنید، IsprimaryKey مشخض می کند که این فیلد کلید جدول است و IsDbGenerated هم مشخص می کند این فیلد  Identity می باشد برای ایجاد امکان Insert، Update و Delete باید به این دو مورد دقت نماییم.

یک دکمه برروی فرم قرار می دهیم و می خواهیم با کلیک کاربر روی آن فرایند Insert اطلاعات انجام شود، قدم بعدی ایجاد یک connection به پایگاه داده مورد نظرمان است این کار را با استفاده از DataContext انجام می دهیم این کلاس در Namespace، system.data.linq قرار گرفته است. خط زیر را به ابتدای برنامه اضافه می کنیم.

static DataContext context = new DataContext("Data Source=.;Initial Catalog=AdventureWorks;Integrated Security=sspi");

حال جدول مورد نظرمان که همان Test است را توسط شی context معرفی می کنیم.

Table test = context.GetTable();

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

//Insert Statement

private void button2_Click(object sender, EventArgs e)

{

DataContext context = new DataContext("Data Source=.;Initial Catalog=AdventureWorks;Integrated Security=sspi");

Table test = context.GetTable();

Test t = new Test();

using (TransactionScope tran = new TransactionScope())

{

t.FirstName = "alireza";

t.LastName = "Memarzadeh";

test.Add(t);

context.SubmitChanges();

tran.Complete();

tran.Dispose();

}

}

پس از معرفی connection و جدول مورد نظر ، یک instance از جدول می سازیم و در داخل یک transaction فیلد های FirstName و LastName را مقدار دهی می کنیم. جتماً باید برای ثبت اطلاعات از متد SubmitChanges(); ، شی context استفاده نماییم ، دست آخر transaction  را نیز تمام می کنیم و آن را از بین می بریم.

برای Update ابتدا باید ردیفی که می خواهیم Update شود را انتخاب نماییم، این کار را با نوشتن دستور زیر انجام می دهیم

var query = (from t in test where t.ID==1 select t );

کل کد مورد نظر برای Update را در ادامه می نویسم.

//Update Statement

private void button3_Click(object sender, EventArgs e)

{

DataContext context = new DataContext("Data Source=.;Initial Catalog=AdventureWorks;Integrated Security=sspi");

Table test = context.GetTable();

var query = (from t in test where t.ID==1 select t );

foreach (var o in query)

{

o.FirstName = "alirzea";

}

context.SubmitChanges();

}

به همین ترتیب برای Delete یک ردیف نیز از کد زیر بهره می بریم که فکر نمی کنم نیاز به توضیح اضافی داشته باشد.

//Delete Statement

private void button4_Click(object sender, EventArgs e)

{

DataContext context = new DataContext("Data Source=.;Initial  Catalog=AdventureWorks;Integrated Security=sspi");

Table test = context.GetTable();

var query = (from t in test where t.ID == 2 select t);

foreach (var o in query)

{

test.Remove(o);

}

context.SubmitChanges();

}

با ما در ارتباط باشد و نظرات خودتون رو در مورد مقالات چا از لحاظ کیفی و چه از لحاظ کمی به ما اطلاع بدید ، تا با کمک هم این سایت رو به برترین .Net Community فارسی زبان تبدیل کنیم.

با تشکر


Search Engine Submission - AddMe