ADO.NET مجموعه ای از کلاس ها است که به برنامه نویس های NET. اجازه می دهد تا درون برنامه به داده ها دسترسی داشته باشند. ADO.NET اجازه می دهد تا بتوانیم به منابع داده متفاوت مانند پایگاه داده های رابطه ای، XML و منابع داده ای دیگر مانند ODBC  دسترسی داشته باشیم. همانطور که پیش از این نیز آموزش داده بودیم، ADO.NET از فراهم کننده های داده (Data Provider) درون NET. برای اتصال، اجرای فرمان ها (کوئری ها) و دریافت پاسخ استفاده می کند. پاسخ های دریافتی از پایگاه داده، یا به صورت مستقیم پردازش می شوند و یا اینکه درون اشیا کلاس DataSet قرار می گیرند.

DataSet یک کَش (Cache) درون حافظه برای نگهداری موقتی داده ها است. یک DataSet خودش شامل مجموعه ای از چندین شی دیگر به نام DataTable است که هر دو DataTable می توانند توسط یک شی به نام DataRelation با یکدیگر در ارتباط باشند. DataTable کلاسی است که برای نمایش یک جدول درون حافظه استفاده می شود. برای تعریف جدول می دانید که باید ستون ها و نوع ستون ها را نیز تعریف کنیم. در ادامه مثال جامعی از چگونگی کاربرد ADO.NET گفته شده است.

اگر فرض کنیم می خواهیم از پایگاه داده SQL Server به همراه برنامه خود استفاده کنیم، پس باید از فراهم کننده SqlClient را برای اتصال، اجرای کوئری ها و دریافت پاسخ به کار ببریم. همانطور که پیش از این نیز توضیح دادیم هر فراهم کننده داده درون فضای نام (Namespace) جدا تعریف شده و شامل چندین کلاس است که از آنها برای تعامل با منبع داده هدف استفاده می کنیم.

گام نخست – ایجاد پایگاه داده درون SQL Server

در مطلب ایجاد LocalDB برای پروژه های Net Framework چگونگی ایجاد یک پایگاه داده محلی برای پروژه NET Framework را آموزش دادیم، بنابراین برای نوشتن برنامه های داده محور، لازم است پیش از هر چیز یک پروژه باید یک پایگاه داده LocalDB ایجاد کنید. پس از آن باید درون برنامه سی شارپ، رشته اتصال را برای متصل شدن به پایگاه داده تعیین کنیم. کد زیر الگوی ساده ای از رشته اتصال برای پایگاه داده LocalDB را نشان می دهد. هر بخش به صورت یک دوتایی Key=Value است که هر بخش با یک سمی کالن (کاراکتر ; ) از بخش دیگری جدا می شود.

بخش ۱ Data Source – نوع پایگاه داده هدف را مشخص می کند و چون می خواهیم به LocalDB وصل شویم، مقدار بخش نخست به صورت LocalDB)\MSSQLLocalDB) خواهد بود.

بخش ۲ AttachedDbFilename – مقدار این بخشی نام فایل یا مسیر فایل پایگاه داده با پسوند mdf است. به طور مثال می توانید از مسیر کامل مانند C:\Users\amirnami\source\repos\ADONET\ConsoleApp1\sample_database.mdf استفاده کنید.

گام های اجرای کوئری ها بوسیله ADO.NET

آنچه که در ادامه می خوانید گام های ساده ای هستند که باید برای دسترسی داده از پایگاه داده و ذخیره سازی داده درون پایگاه داده انجام شوند. توجه کنید ADO.NET به عنوان پلی است میان برنامه Net Framework و منابع داده ای متفاوت، مانند پایگاه داده رابطه ای SQL Server تا بتوانیم دستورها SQL را بفرستیم و پاسخ مناسب را دریافت کنیم. برای آگاهی بیشتر می توانید اینجا را بخوانید.

۱ – اتصال به پایگاه داده

رشته اتصال جنبه های متفاوت لازم برای اتصال بع پایگاه داده مانند نام هاست، شماره پورت، حساب کاربری دارای مجوز روی پایگاه داده می شود. بنابراین نخستین گام استفاده از رشته اتصال همراه با کلاس SqlConnection برای ایجاد اتصال به پایگاه داده هدف است. در بالا در مورد رشته اتصال برای SQL Server LocalDB صحبت کردیم و در مطلب های پیش رو نشان داده ایم چگونه بوسیله تابع سازنده کلاس SqlConnection به پایگاه داده هدف متصل شویم.

۲ – آماده سازی و اجرای کوئری های SQL

برای تعامل با پایگاه داده بوسیله ADO.NET باید کوئری های SQL (چهار گانه CRUD) مانند SELECT, INSERT, UPDATE و DELETE یا دستورهای اجرای روال های ذخیره شده یا تابع ها را بوسیله کلاس SqlCommand آماده کنید و سپس بوسله متدهای کلاس SqlCommand کوئری SQL را اجرا کنید تا در پایان یا پاسخ مناسب (سطرهای جدول یا هیچ سطری) یا یک خطا برگشت داده شود.

۳ – واکشی داده ها

فرمان SELECT داده ها را از جدول های پایگاه داده می خواند و سپس یک کپی تنها خواندنی (Read Only) را به ADO.NET و برنامه سی شارپ برگشت می دهد. برای نگهداری این سطرهای برگشتی می توانیم کلاس DataReader را به کار ببریم. در مطلب های پیش رو چگونگی به کار گیری کلاس DataReader و ایجاد یک نمونه از کلاس DataAdpater را آموزش داده ایم. برای اجرای دیگر کوئری های INSERT, UPDATE, DEELETE و یا CREATE TABLE نیاز نسب تا از DataReader کمک گرفته شود بلکه به گونه دیگری این کوئری ها اجرا خواهند شد.

در مطلب های پیش رو با نمونه های ساده ای کاربرد ADO.NET را آموزش داده ایم. توجه کنید در ADO.NET می بایست که کوئری های SQL را خودمان بنویسیم ولی برابر با چیزی که در مطلب درباره Entity Framework و ASP.NET MVC توضیح دادیم، در ORM ها نیازی به نوشتن کوئری های SQL نیست بلکه متدهای زبان مربوطه (در اینجا سی شارپ) را برای ایجاد کوئری های پایگاه داده هدف به کار می بریم.