ADO.NET

ADO.NET پلی بین کنترل های جلویی و پایگاه داده پشتی فراهم می کند. اشیاء ADO.NET تمام عملیات دسترسی به داده ها را محصور می کنند و کنترل ها برای نمایش داده ها با این اشیاء تعامل دارند، بنابراین جزئیات حرکت داده ها را پنهان می کنند.شکل زیر اشیاء ADO.NET را در یک نگاه نشان می دهد:کلاس DataSetمجموعه داده نشان دهنده زیر مجموعه ای از پایگاه داده است. اتصال مداوم به پایگاه داده ندارد. برای به روز رسانی پایگاه داده نیاز به اتصال مجدد است. DataSet شامل اشیاء DataTable و DataRelation است. اشیاء DataRelation نشان دهنده رابطه بین دو جدول است.جدول زیر برخی از ویژگی های مهم کلاس DataSet را نشان می دهد:توضیحات خواصCaseSensitive نشان می دهد که آیا مقایسه رشته ها در جداول داده ها به حروف بزرگ و کوچک حساس هستند یا خیر.Container محفظه کامپوننت را می گیرد.DataSetName نام مجموعه داده فعلی را دریافت یا تنظیم می کند.DefaultViewManager نمایی از داده ها را در مجموعه داده برمی گرداند.DesignMode نشان می دهد که آیا جزء در حال حاضر در حالت طراحی است یا خیر.EnforceConstraints نشان می دهد که آیا هنگام تلاش برای هر عملیات به روز رسانی از قوانین محدودیت پیروی می شود یا خیر.رویدادها فهرستی از کنترل‌کننده‌های رویداد را دریافت می‌کند که به این مؤلفه متصل شده‌اند.ExtendedProperties مجموعه ای از اطلاعات کاربر سفارشی شده مرتبط با DataSet را دریافت می کند.HasErrors نشان می دهد که آیا هر گونه خطا وجود دارد.IsInitialized نشان می دهد که آیا DataSet مقداردهی اولیه شده است یا خیر.Locale اطلاعات محلی مورد استفاده برای مقایسه رشته ها در جدول را دریافت یا تنظیم می کند.Namespace فضای نام DataSet را دریافت یا تنظیم می کند.پیشوند یک پیشوند XML که نام مستعار فضای نام DataSet را دریافت می کند یا تنظیم می کند.Relations مجموعه ای از اشیاء DataRelation را برمی گرداند.Tables مجموعه ای از اشیاء DataTable را برمی گرداند.جدول زیر چند روش مهم کلاس DataSet را نشان می دهد:شرح روشهاAcceptChanges تمام تغییرات ایجاد شده از زمان بارگیری DataSet یا فراخوانی این متد را می پذیرد.BeginInit شروع به مقدار دهی اولیه DataSet می کند. مقداردهی اولیه در زمان اجرا اتفاق می افتد.پاک کردن داده ها را پاک می کند.Clone ساختار DataSet را کپی می کند، شامل تمام طرحواره ها، روابط و محدودیت های DataTable. هیچ داده ای را کپی نمی کند.کپی ساختار و داده ها را کپی می کند.CreateDataReader() یک DataTableReader را با یک مجموعه نتیجه در هر DataTable، به همان ترتیبی که جداول در مجموعه جداول ظاهر می شوند، برمی گرداند.CreateDataReader(DataTable[]) DataTableReader را با یک مجموعه نتیجه در هر DataTable برمی گرداند.EndInit به مقدار دهی اولیه مجموعه داده پایان می دهد.Equals(Object) تعیین می کند که آیا شی مشخص شده با شی فعلی برابر است یا خیر.منابع رایگان را نهایی کنید و پاکسازی های دیگر را انجام دهید.GetChanges یک کپی از DataSet را با تمام تغییرات ایجاد شده از زمان بارگیری یا فراخوانی متد AcceptChanges برمی گرداند.GetChanges(DataRowState) یک کپی از DataSet با تمام تغییرات ایجاد شده از زمان بارگیری یا فراخوانی متد AcceptChanges دریافت می کند که توسط DataRowState فیلتر شده است.GetDataSetSchema یک کپی از XmlSchemaSet برای DataSet دریافت می کند.GetObjectData یک شی اطلاعات سریال سازی را با داده های مورد نیاز برای سریال سازی DataSet پر می کند.GetType نوع نمونه فعلی را دریافت می کند.GetXML نمایش XML داده ها را برمی گرداند.GetXMLSchema طرح XSD را برای نمایش XML داده ها برمی گرداند.HasChanges() مقداری را دریافت می کند که نشان می دهد آیا DataSet تغییراتی دارد، از جمله ردیف های جدید، حذف شده یا اصلاح شده.HasChanges(DataRowState) مقداری را دریافت می کند که نشان می دهد آیا DataSet تغییراتی دارد، از جمله ردیف های جدید، حذف شده یا اصلاح شده، فیلتر شده توسط DataRowState.IsBinarySerialized فرمت نمایش سریالی DataSet را بررسی می کند.Load(IDataReader، LoadOption، DataTable[]) با استفاده از IDataReader ارائه‌شده، با استفاده از آرایه‌ای از نمونه‌های DataTable برای ارائه اطلاعات طرح‌واره و فضای نام، یک DataSet را با مقادیر یک منبع داده پر می‌کند.Load(IDataReader، LoadOption، String[]) یک DataSet را با مقادیر یک منبع داده با استفاده از IDataReader ارائه شده پر می کند، با استفاده از آرایه ای از رشته ها برای تهیه نام برای جداول در DataSet.Merge() داده ها را با داده های DataSet دیگر ادغام می کند. این روش دارای اشکال مختلف بارگذاری شده است.ReadXML() یک طرح و داده XML را در DataSet می خواند. این روش دارای اشکال مختلف بارگذاری شده است.ReadXMLSchema(0) یک طرح XML را در DataSet می خواند. این روش دارای اشکال مختلف بارگذاری شده است.RejectChanges همه تغییرات ایجاد شده از آخرین تماس با AcceptChanges را برمی گرداند.WriteXML() یک طرح و داده XML را از DataSet می نویسد. این روش دارای اشکال مختلف بارگذاری شده است.WriteXMLSchema() ساختار DataSet را به عنوان یک طرحواره XML می نویسد. این روش دارای اشکال مختلف بارگذاری شده است.کلاس DataTableکلاس DataTable جداول موجود در پایگاه داده را نشان می دهد. دارای خواص مهم زیر است؛ اکثر این ویژگی ها به جز ویژگی PrimaryKey، ویژگی های فقط خواندنی هستند:توضیحات خواصChildRelations مجموعه روابط کودک را برمی گرداند.Columns مجموعه ستون ها را برمی گرداند.Constraints مجموعه Constraints را برمی گرداند.DataSet DataSet والد را برمی گرداند.DefaultView نمای جدول را برمی گرداند.ParentRelations مجموعه ParentRelations را برمی گرداند.PrimaryKey آرایه ای از ستون ها را به عنوان کلید اصلی جدول می گیرد یا تنظیم می کند.Rows مجموعه Rows را برمی گرداند.جدول زیر چند روش مهم کلاس DataTable را نشان می دهد:شرح روشهاAcceptChanges همه تغییرات را از آخرین AcceptChanges انجام می دهد.Clear تمام داده های جدول را پاک می کند.GetChanges یک کپی از DataTable را با تمام تغییرات ایجاد شده از زمان فراخوانی متد AcceptChanges برمی گرداند.GetErrors آرایه ای از ردیف های دارای خطا را برمی گرداند.ImportRows یک ردیف جدید را در جدول کپی می کند.LoadDataRow یک ردیف خاص را پیدا و به روز می کند، یا یک ردیف جدید ایجاد می کند، در صورتی که یافت نشد.Merge جدول را با DataTable دیگری ادغام می کند.NewRow یک DataRow جدید ایجاد می کند.RejectChanges همه تغییرات ایجاد شده از آخرین تماس با AcceptChanges را برمی گرداند.Reset جدول را به حالت اولیه باز می گرداند.انتخاب کنید آرایه ای از اشیاء DataRow را برمی گرداند.کلاس DataRowشی DataRow نشان دهنده یک ردیف در یک جدول است. دارای خواص مهم زیر است:توضیحات خواصHasErrors نشان می دهد که آیا هر گونه خطا وجود دارد.آیتم ها داده های ذخیره شده در یک ستون خاص را دریافت یا تنظیم می کند.ItemArrays تمام مقادیر سطر را می گیرد یا تنظیم می کند.Table جدول والد را برمی گرداند.جدول زیر چند روش مهم کلاس DataRow را نشان می دهد:شرح روشهاAcceptChanges تمام تغییرات ایجاد شده از زمان فراخوانی این متد را می پذیرد.BeginEdit عملیات ویرایش را آغاز می کند.CancelEdit عملیات ویرایش را لغو می کند.Delete DataRow را حذف می کند.EndEdit عملیات ویرایش را پایان می دهد.GetChildRows ردیف های فرزند این ردیف را دریافت می کند.GetParentRow ردیف والد را دریافت می کند.GetParentRows ردیف های والد شی DataRow را دریافت می کند.RejectChanges همه تغییرات ایجاد شده از آخرین تماس با AcceptChanges را برمی گرداند.شیء DataAdapterشی DataAdapter به عنوان یک واسطه بین شی DataSet و پایگاه داده عمل می کند. این به Dataset کمک می‌کند تا داده‌هایی از چندین پایگاه داده یا سایر منابع داده را در خود داشته باشد.شی DataReaderشی DataReader جایگزینی برای ترکیب DataSet و DataAdapter است. این شی یک دسترسی اتصال گرا به رکوردهای داده در پایگاه داده را فراهم می کند. این اشیاء برای دسترسی فقط خواندنی مناسب هستند، مانند پر کردن لیست و سپس قطع اتصال.اشیاء DbCommand و DbConnectionشی DbConnection یک اتصال به منبع داده را نشان می دهد. اتصال را می توان بین اشیاء فرمان مختلف به اشتراک گذاشت.شی DbCommand نشان دهنده دستور یا یک رویه ذخیره شده است که از بازیابی یا دستکاری داده ها به پایگاه داده ارسال می شود.مثالتا کنون، ما از جداول و پایگاه داده های موجود در رایانه خود استفاده کرده ایم. در این مثال، یک جدول ایجاد می کنیم، ستون، ردیف و داده را به آن اضافه می کنیم و جدول را با استفاده از یک شی GridView نمایش می دهیم.کد فایل منبع به شرح زیر است:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="createdatabase._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> Untitled Page </title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server"> </asp:GridView> </div> </form> </body> </html>کد پشت فایل به صورت زیر است:namespace createdatabase{ public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataSet ds = CreateDataSet(); GridView1.DataSource = ds.Tables["Student"]; GridView1.DataBind(); } } private DataSet CreateDataSet() { //creating a DataSet object for tables DataSet dataset = new DataSet(); // creating the student table DataTable Students = CreateStudentTable(); dataset.Tables.Add(Students); return dataset; } private DataTable CreateStudentTable() { DataTable Students = new DataTable("Student"); // adding columns AddNewColumn(Students, "System.Int32", "StudentID"); AddNewColumn(Students, "System.String", "StudentName"); AddNewColumn(Students, "System.String", "StudentCity"); // adding rows AddNewRow(Students, 1, "M H Kabir", "Kolkata"); AddNewRow(Students, 1, "Shreya Sharma", "Delhi"); AddNewRow(Students, 1, "Rini Mukherjee", "Hyderabad"); AddNewRow(Students, 1, "Sunil Dubey", "Bikaner"); AddNewRow(Students, 1, "Rajat Mishra", "Patna"); return Students; } private void AddNewColumn(DataTable table, string columnType, string columnName) { DataColumn column = table.Columns.Add(columnName, Type.GetType(columnType)); } //adding data into the table private void AddNewRow(DataTable table, int id, string name, string city) { DataRow newrow = table.NewRow(); newrow["StudentID"] = id; newrow["StudentName"] = name; newrow["StudentCity"] = city; table.Rows.Add(newrow); } }}هنگام اجرای برنامه موارد زیر را رعایت کنید:برنامه ابتدا یک مجموعه داده ایجاد می کند و با استفاده از متد DataBind() کنترل GridView آن را با کنترل گرید نمای متصل می کند.متد Createdataset () یک تابع تعریف شده توسط کاربر است که یک شی DataSet جدید ایجاد می کند و سپس متد تعریف شده توسط کاربر دیگر CreateStudentTable() را برای ایجاد جدول و اضافه کردن آن به مجموعه جداول مجموعه داده فراخوانی می کند.متد CreateStudentTable() متدهای تعریف شده توسط کاربر AddNewColumn() و AddNewRow() را برای ایجاد ستون ها و ردیف های جدول و همچنین افزودن داده ها به سطرها فراخوانی می کند.هنگامی که صفحه اجرا می شود، ردیف های جدول را مطابق شکل برمی گرداند: