آموزش چهار عمل اصلی (CRUD) با استفاده از LINQ To XML
دوشنبه 6 مهر 1394در این مقاله قصد داریم در تکنولوژی asp به پیاده سازی چهار عمل اصلی افزودن ، ویرایش، حذف و انتخاب رکورد با استفاده از Linq to XMl بپردازیم.
XMl یک زبان نشانه گذاری یا به عبارتی Markup Languag است این زبان برای ذخیره و انتقال داده به کار میرود یکی از ویژگی های زبان های نشانه گذاری پشتیبانی کامل از همه زبان ها و مخصوصا زبان فارسی است.
طریقه تعریف یک سند Xml:
برای استفاده از یک سند Xml کافی است قطعه کد زیر را در بالای صفحه خود بنویسیم
<?XML version="1.0" encoding="UTF-8"?>
قبل از شروع کار لازم است این نکته را خاطر نشان کنم که همان طور در بالا گفته شد زبان XMl مانند Html یک زبان نشانه گذاری است اما تفاوت این دوزبان در آن است که زبان Html یک زبان برای نمایش است ولی زبان Xml یک سند برای نگهداری و انتقال اطلاعات میباشد.
شرح مطالبی که در این مقاله به آن میپردازیم
1) ایجاد یک سند XMl و درج اطلاعات در آن
2) پیاده سازی چهار عمل اصلی با استفاده از LINQ To XML
برای ایجاد یک سند xml راه های زیادی وجود دارد به عنوان مثال شما میتوانید یک Notepad باز کرده و
اطلاعات خود را به صورت یک سند نشانه گذاری ذخیره کنید یا میتوان ویژوال استادیو را باز کرده در Add<NewItem < Xml را جستجو کرده و مانند زیر در xml file یک سند xml ایجاد کنید
حال زیر سند Xml خود را تعریف میکنیم
<?xml version="1.0" encoding="utf-8"?> <Employess> <Employee> <id>101</id> <name>علی </name> <salary>100000</salary> <email>ali@gmail.com</email> <address>ایران </address> </Employee> <Employee> <id>102</id> <name>ایمان </name> <salary>12000</salary> <email>Amit@gmail.com</email> <address>ایران</address> </Employee> <Employee> <id>120</id> <name> محمد </name> <salary>1500</salary> <email>Surya</email> <address>ایران</address> </Employee> <Employee> <id>105</id> <name>سجاد </name> <salary>150000</salary> <email>Surya</email> <address>ایران</address> </Employee> <Employee> <id>105</id> <name>امیر</name> <salary>4522</salary> <email>ss@gmail.com</email> <address>ایران</address> </Employee> <Employee> <id>103</id> <name>تقی </name> <salary>12000</salary> <email>surya@gmail.com</email> <address>ایران</address> </Employee> </Employess>
ابتدا ویژوال استادیو را باز کرده و یک پروژه از نوع Asp.Net ایجاد میکنم
و روی پروژه راست کلیک کرده و یک WebForm ایجاد میکنیم
و سپس فرم خود را به صورت زیر طراحی میکنیم و این نکته را خاطر نشان کنم اطلاعات گرید از سند XMl پر میشود
لازم بذکر است برای کار با سند XMl فضای نام System.XML.LINQ; را به برنامه اضافه کنید
در قسمت کد ، یک تابع برای پر کردن اطلاعات گرید به نام BindGrid ایجاد میکنیم
XDocument xmldoc; public void BindGrid() { xmldoc = XDocument.Load("D:/Emp12.xml"); //add xml document var bind = xmldoc.Descendants("Employee").Select(p => new { Id=p.Element("id").Value, Name=p.Element("name").Value, Salary=p.Element("salary").Value, Email=p.Element("email").Value, Address=p.Element("address").Value }).OrderBy(p=>p.Id); GridView1.DataSource = bind; GridView1.DataBind(); } protected void Page_Load(object sender, EventArgs e) { BindGrid(); }
و تابع را در Load صفحه برای بروز رسانی گرید فرا خوانی میکنیم
حال برای افزودن روی دکمه افرودن دوبار کلیک کرده تا متد click آن فرا خوانی شود
protected void Insert_Click(object sender, EventArgs e) { XElement emp = new XElement("Employee", new XElement("id", txtid.Text), new XElement("name", txtname.Text), new XElement("salary",txtsalary.Text), new XElement("email",txtemail.Text), new XElement("address", txtaddress.Text)); xmldoc.Root.Add(emp); xmldoc.Save("D:/Emp12.xml"); BindGrid(); Reset(); // For clear textbox }
برای پاک کردن اطلاعات پر شده یک تابع به نام reset نوشته و در انتهای ویرایش و افزودن صدا میزنیم
private void Reset() { txtid.Text = ""; txtname.Text = ""; txtsalary.Text = ""; txtaddress.Text = ""; txtemail.Text = ""; txtid.Focus(); }
حال برای پیدا کردن اطلاعات هر ردیف از گرید برای ویرایش تابعی به نام find مینویسیم
protected void Find(object sender, EventArgs e) { XElement emp = xmldoc.Descendants("Employee").FirstOrDefault(p => p.Element("id").Value == txtid.Text); if (emp != null) { txtname.Text = emp.Element("name").Value; txtsalary.Text = emp.Element("salary").Value; txtemail.Text = emp.Element("email").Value; txtaddress.Text = emp.Element("address").Value; } }
حال برای ویرایش هر ردیف از گرید در رویداد کلیک دکمه ویرایش کدهای زیر را مینویسیم
protected void Update_click(object sender, EventArgs e) { XElement emp = xmldoc.Descendants("Employee").FirstOrDefault(p => p.Element("id").Value == txtid.Text); if (emp != null) { emp.Element("name").Value = txtname.Text; emp.Element("salary").Value = txtsalary.Text; emp.Element("email").Value = txtemail.Text; emp.Element("address").Value = txtaddress.Text; xmldoc.Root.Add(emp); xmldoc.Save("D:/Emp12.xml"); BindGrid(); Reset(); } }
و در انتها برای حذف از کدهای زیر استفاده میکنیم
protected void delete_click(object sender, EventArgs e) { XElement emp = xmldoc.Descendants("Employee").FirstOrDefault(p => p.Element("id").Value == txtid.Text); if (emp != null) { emp.Remove(); xmldoc.Save("D:/Emp12.xml"); BindGrid(); Reset(); } }
- ASP.net
- 3k بازدید
- 4 تشکر