
آموزش ADO.NET و دیتابیس ها در سی شارپ
آموزش ADO.NET و دیتابیس ها در سی شارپ یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی ADO.NET در سی شارپ است که با نام اصلی ADO.NET Fundamentals in C# از شرکت Pluralsight منتشر شده است.
ADO.NET و دسترس های به داده ها
تکنولوژی ADO.NET شامل کلاس هایی می باشد که امکان دسترسی پیدا کردن به دادهها در فریم ورک دات نت را به برنامه نویس میدهد. همانطور که احتمالاً میدانید ابزارهایی از قبیل Entity Framework و NHibernate که به آنها ORM نیز میگویند سربارهای اضافه ای را برای انجام عملیاتی که قرار است در اختیار برنامه نویس قرار بدهند به برنامه تحمیل می کنند. استفاده کردن از ADO.NET برنامه نویس را در کنترل کامل کار کردن با داده ها قرار میدهد و سربار اضافی که ابزارهایی از قبیل Entity Framework به برنامه تحمیل می کنند را نخواهد داشت. در ADO.NET امکان کارکردن با داده های محلی و توزیع شده وجود دارد. علاوه بر این، تکنولوژی ADO.NET به برنامه نویس کمک میکند تا با گستره وسیعی از Provider از قبیل SQL Server و ODBC و OLEDB کار کند. امکان کار کردن با داده های XML نیز با استفاده از ADO.NET وجود دارد.

استفاده کردن از تکنولوژی ADO.NET نسبت به کار کردن با تکنولوژی Entity Framework نیاز به کدنویسی بیشتری توسط برنامه نویس خواهد داشت. اما موضوعی که اینجا اهمیت دارد سرعت بسیار بالای کار کردن با ADO.NET نسبت به Entity Framework و یا ابزارهای مشابه است. در ADO.NET امکان کار کردن با داده های بانک های اطلاعاتی در دو سناریوی connected و disconnected وجود دارد. کلاس هایی که در تکنولوژی ADO.NET قرار گرفته اند اجازه می دهند تا شما بتوانید به سادگی داده های درون دیتابیس را بخوانید، آنها را ویرایش کرده و نهایتاً آنها را بر روی بانک اطلاعاتی ذخیره کنید. امکان ارسال کردن دستورات خام SQL و همچنین فراخوان کردن Stored Procedure های موجود در بانک اطلاعاتی با استفاده از تکنولوژی ADO.NET وجود دارد. به دلیل عدم وجود سربار اضافی که ابزارهای از قبیل Entity Framework به برنامه تحمیل میکنند سرعت کار کردن با ADO.NET بسیار بالا است. به بیان دقیق تر، پرسرعت ترین روش کار کردن با داده ها در اپلیکیشن های ایجاد شده با فریم ورک دات نت ADO.NET می باشد.
اتصال به دیتابیس در C# با ADO.NET
برای بسیاری از برنامههای کاربردی، ارتباط با دیتابیس یکی از بخشهای اصلی توسعه نرمافزار است. ADO.NET مجموعهای از کلاسها و قابلیتها در .NET فراهم میکند که با استفاده از آنها میتوان به منابع داده متصل شد، Query اجرا کرد و اطلاعات موردنیاز را دریافت یا تغییر داد. درک نحوه ایجاد اتصال و ارسال دستورهای پایگاه داده به برنامهنویسان کمک میکند ارتباط میان منطق برنامه و لایه ذخیرهسازی اطلاعات را بهتر مدیریت کنند و کنترل بیشتری بر عملیات داده داشته باشند.
در کار با ADO.NET، لازم است با اجزای اصلی ارتباط با دیتابیس و مسئولیت هرکدام آشنا شوید. اتصال به پایگاه داده، اجرای دستورهای SQL و دریافت نتایج، مراحل متفاوتی هستند که باید به شکل مناسبی مدیریت شوند. همچنین، مدیریت منابع و رسیدگی به خطاهای احتمالی در زمان اجرای عملیات اهمیت دارد. شناخت این فرایندها برای توسعهدهندگان C# مفید است؛ حتی اگر در برخی پروژهها از ابزارهای سطح بالاتری مانند ORM استفاده کنند.
تفاوت SqlDataReader و DataTable در ADO.NET
ADO.NET چندین روش برای دریافت و نگهداری دادههای بازیابیشده از دیتابیس در اختیار برنامهنویس قرار میدهد. SqlDataReader برای خواندن نتایج Query بهصورت پیشرونده طراحی شده است و معمولاً برای پردازش رکوردها به شکل ترتیبی و با سربار حافظه کمتر مناسب است. این کلاس زمانی کاربرد دارد که برنامه بخواهد دادهها را از نتیجه یک Query بخواند و بدون نیاز به نگهداری کامل مجموعه در حافظه، آنها را پردازش کند.
در مقابل، DataTable دادهها را در قالب ساختاری جدولی در حافظه نگهداری میکند و امکان دسترسی به ردیفها و ستونها را پس از بارگذاری فراهم میسازد. این ویژگی در سناریوهایی مفید است که لازم است دادهها پس از پایان عملیات خواندن نیز در دسترس باشند یا بهصورت جدا از اتصال فعال پردازش شوند. انتخاب میان SqlDataReader و DataTable به نیاز برنامه، شیوه مصرف دادهها و نحوه مدیریت منابع بستگی دارد. شناخت تفاوت آنها به انتخاب روش مناسبتر کمک میکند.
مدیریت Exception و خطاهای دیتابیس در ADO.NET
هنگام اجرای عملیات دیتابیس، ممکن است خطاهایی مانند نامعتبر بودن دستور SQL، مشکلات اتصال یا ناسازگاری دادهها رخ دهند. در ADO.NET، مدیریت Exception به برنامهنویس کمک میکند این شرایط را کنترل کند و از توقف ناخواسته جریان اجرای برنامه جلوگیری کند. استفاده صحیح از سازوکارهای مدیریت خطا باعث میشود برنامه بتواند واکنش مناسبی به مشکلات نشان دهد و اطلاعات لازم را برای بررسی علت خطا در اختیار توسعهدهنده قرار دهد.
مدیریت خطا تنها به گرفتن Exception محدود نمیشود؛ بلکه باید مشخص باشد هر خطا در چه بخشی رخ داده و برنامه پس از وقوع آن چه رفتاری داشته باشد. برای مثال، آزادسازی منابعی که برای اتصال به دیتابیس استفاده شدهاند، حتی در صورت بروز خطا اهمیت دارد. همچنین، اطلاعات حساس اتصال یا جزئیات داخلی سیستم نباید بدون ملاحظه در پیامهای قابل مشاهده برای کاربران قرار گیرند. رعایت این نکات به توسعه برنامههایی کمک میکند که در برابر خطاهای رایج ارتباط با دیتابیس رفتار قابل پیشبینیتری دارند.
استفاده از ADO.NET در برنامههای مبتنی بر .NET
با وجود استفاده گسترده از ORMهایی مانند Entity Framework در بسیاری از پروژههای .NET، شناخت ADO.NET همچنان برای درک نحوه تعامل مستقیم با دیتابیس ارزشمند است. این فناوری ابزارهایی برای اجرای Query، دریافت نتایج و مدیریت ارتباط با منابع داده فراهم میکند. آشنایی با این قابلیتها به برنامهنویسان کمک میکند درک روشنتری از فرایند دسترسی به داده داشته باشند و در موقعیتهایی که کنترل مستقیمتری بر عملیات دیتابیس لازم است، راهکار مناسبی انتخاب کنند.
ADO.NET همچنین شامل کلاسهایی برای کار با دادهها در حالت متصل و جدا از اتصال است. شناخت این مدلها، در کنار آشنایی با کلاسهای سازنده و ابزارهای سادهسازی عملیات، به شما کمک میکند کدهای مرتبط با دیتابیس را بهتر سازماندهی کنید. برای برنامهنویسان C#، یادگیری این مفاهیم پایهای میتواند در فهم عملکرد لایه دسترسی به داده و بررسی رفتار ابزارهای سطح بالاتر مفید باشد. این دانش بهویژه هنگام عیبیابی عملیات دیتابیس یا تحلیل نحوه اجرای Queryها کاربرد دارد.
سرفصل مطالب آموزش ویدئویی ADO.NET و دیتابیس ها در سی شارپ
فصل اول: مقدمه دوره آموزشی- مقدمه دوره آموزشی
- مقدمه و پیش فرض ها
- بررسی فصل های این دوره آموزشی
- چرا هنوز NET اهمیت دارد؟
- کلاس های موجود در .NET
- بررسی ORM ها ارتباط آنها با .NET
- بررسی اپلیکیشن مربوط به این دوره آموزشی
- جمع بندی
- مقدمه
- بررسی کلاس Connection
- باز کردن یک Connection
- استفاده کردن از یک Using Block
- Catch کردن Connection های مربوط به Exception
- استفاده کردن از Connection String ها
- بازیابی کردن یک Scalar Value با استفاده از یک Command
- ارسال یک دستور INSERT با استفاده از ExecuteNonQuery
- ارسال یک Query با Parameter ها
- ارسال یک دستور INSERT با Parameter ها
- استفاده از پارامتر های OUTPUT
- تراکنش ها و پردازش کردن آن ها
- جمع بندی
- مقدمه
- پردازش سطر های درون یک DataReader
- متد های یک DataReader و بررسی GetOrdinal
- بررسی استفاده از متد های یک DataReader
- استفاده کردن از متد های GetFieldValue
- ایجاد یک Extension Method برای هندل کردن مقادیر Null
- کارکردن با چندین Result Set
- جمع بندی
- مقدمه
- بررسی روال Exception Handling ساده
- Catch کردن SqlException برای بدست آوردن اطلاعات بیشتر
- چگونه کلاس SqlExceptionManager را ایجاد کینم؟
- کار کردن با کلاس SqlExceptionManager
- بررسی کردن قابلیت های کلاس SqlExceptionManager
- جمع بندی
- کلاس های Disconnected چه هستند؟
- Load کردن DataTable با استفاده از SqlDataAdapter
- ایجاد کردن یک لیست Generic ازobject ها با استفاده از یک DataTable
- کار کردن با چندین Result Set و کلاس DataSet
- استفاده کردن از DataView برای انجام عملیات Sort کردن
- فیلتر کردن داده ها با استفاده از یک DataView
- ایجاد کردن یک DataView با استفاده از دستورات LINQ
- تبدیل کردن یک DataView به یک DataTable
- جمع بندی
- مقدمه
- ایجاد کردن یک DataTable با استفاده از زبان سی شارپ
- Clone کردن و Copy کردن DataTable ها
- استفاده کردن از متد Select برای فیلتر کردن سطر ها
- بررسی کردن متد CopyToDataTable
- جمع بندی
- مقدمه
- مقدمه ای بر کلاس SqlConnectionStringBuilder
- تجزیه کردن اجزای درون یک Connection String
- ایجاد کردن یک Connection String با استفاده از کلاس SqlConnectionStringBuilder
- استفاده کردن از SqlConnectionBuilder
- Insert کردن یک Object با استفاده از SqlCommandBuilder
- جمع بندی
- بررسی Wrapper Class های مربوط به .NET
- بررسی جزئیات مربوط به Wrapper Class های اصلی در .NET
- بازیابی کردن داده با استفاده از چندین خط کوتاه کد
- استفاده کردن از پارامتر ها برای جستجو کردن داده ها
- بازیابی کردن داده ها با استفاده از Stored Procedure ها
- بدست آوردن چندین Result Set
- تغییر دادن داده ها
- پردازش کردن تراکنش ها
- جمع بندی دوره آموزشی







