در بخش های اول تا پنجم آموزش سی شارپ با اصول اولیه برنامه نویسی به زبان سی شارپ آشنا شدید. در این بخش برای شروع آموزش برنامه نویسی بانک اطلاعاتی با سی شارپ به معرفی تکنولوژی ها و معماری های بانک اطلاعاتی در سی شارپ پرداخته و زمینه برای شروع انجام عملیات محتلف در بخش های بعدی فراهم می کنیم.
معرفی ADO.NET
ADO دارای نسخه های مختلفی است و بطور کلی شامل اشیایی برای اتصال به بانک اطلاعاتی و کار با جداول اطلاعاتی است. این معماری بعنوان یک مجموعه رکورد غیر متصل معرفی شده است و هنگامی کاربرد دارد که نیازی به نگهداری اتصال مداوم با بانک اطلاعاتی نیست و یا اصلاً نگهداری اتصال مداوم مناسب نمی باشد. مهمترین اشکالی که ADO با آنها دست به گریبان بوده است، حجیم بودن یک مجموعه از رکوردهای غیر اتصالی می باشد .
ADO.NET توسعه یافته ADO بوده و سعی می کند کارآیی خارج از پایگاه داده را به حداکثر میزان ممکن برساند. این معماری همراه با چهار فضای نامی کلاینتی پایگاه داده عرضه می شود: یکی برای SQL Server ، دومی برای اوراکل ، سومی برای منابع داده ای ODBC و چهارمی برای هر پایگاه داده ای که از طریق SQL عرضه می شود.
ساختار معماری ADO.NET بصورت زیر است:
معماری فوق دارای دو بخش اصلی است:
- Data Provider (فراهم کننده داده ها)
- DataSet (مجموعه داده ها)
در ادامه به توضیح این دو بخش می پردازیم.
فراهم کننده داده ها وظیفه برقراری ارتباط با بانک اطلاعاتی ، خواندن داده ها و نیز اعمال تغییرات روی بانک اطلاعاتی را برعهده دارد. در حالی که DataSet وظیفه نگهداری یک نسخه مخلی از داده های فراهم شده توسط بخش اول را بصورت آفلاین انجام می دهد. هر نوع تغییراتی روی داده های DataSet بصورت محلی بوده و برای ارسال به بانک اطلاعاتی باید از فراهم کنند داده کمک گرفته شود.
معماری ADO.NET برای فراهم کننده داده دارای چهار کلاس اصلی است:
Connection : برای ایجاد اتصال به بانک اطلاعاتی
DataReader : برای خواندن رکورد به رکورد داده ها از بانک اطلاعاتی با کمک اتصال موجود
DataAdapter : برای خواندن یکجای سطرها از بانک اطلاعاتی و پر کردن دیتاست با کمک اتصال
Command: برای اجرای فرامین مختلف جهت درج، حذف یا اصلاح رکورد روی بانک اطلاعاتی با کمک اتصال
همچنین دیتاست برای نگهداری یک نسخه محلی از بانک اطلاعاتی برای برنامه استفاده می شود.DataSet خود از تعدادی DataTable تشکیل شده است که هر کدام از آنها قابلیت نگهداری نتیجه یک دستور Select روی بانک اطلاعاتی را بصورت محلی دارند.
کنترل های بصری مثل جعبه متن ها، کمبوباکس ها و دیتا گریدها داده هایشان را از دیتاست بدست می آورند.
تکنولوژی های دستیابی به پایگاه های داده SQL Server در .NET
.NET از تکنولوژی های زیر برای ارتباط با بانک اطلاعاتی استفاده می کند:
1- SQL Server Data Provider
امکان دستیابی به بانک های اطلاعاتی SQL Server نسخه 7.0 و بالاتر
2- OLE DB Data Provider
امکان دستیابی به بانک های اطلاعاتی SQL Server قدیمی و پایگاه داده های دیگر مثل Access ،DB2، MySQLوOracle
3- ODBC Data Provider
برای دستیابی به Data Source هایی که توسط دو تکنولوژی فوق پشتیبانی نمی شود.
در سی شارپ برای هر کدام از فراهم کننده های فوق یک مجموعه شامل چهار کلاس (DataAdapter،Connection ،Command و DataReader) وجود دارد که برای هر کدام پیشوندهایی به نام این کلاس ها اضافه می شود:
کلاسهای فراهم کننده داده برای تکنولوژی SQL Server عبارتند از:
SQLConnection
SQLDataReader
Sql
6-3-مقایسه تکنولوژی OLE DB با SQL Server
SQL Server
(7.0 or later) |
OLE DB Provider |
OLE DB Service Component |
OLE DB .NET Data Provider |
SQL Server .NET Data Provider |
با توجه به مسیر ارتباطی با پایگاه داده می توان نتیجه گرفته که برای کار با بانک های اطلاعاتی SQL Server :
- SQL Server Data Provider بهترین کارآیی را دارد.
- OLE DB Data Provider کارآیی کمتری را دارد.
- ODBC Data Provider در جاهایی که امکان استفاده از دو تکنولوژی فوق وجود ندارد مورد استفاده قرار می گیرد وکمترین کارایی را دارد.از آنجا که سی شارپ یک زبان برنامه نویسی کاربردی با امکانات بسیار زیاد برای برنامه نویسی بانک اطلاعاتی است، روش های مختلفی برای ارتباط با بانک اطلاعاتی و مدیریت داده ها فراهم می نماید تا هر کس با توجه به سلیقه و نیاز خود، یک یا ترکیبی از روش ها را استفاده نماید. در این درس ابتدا استفاده از دیتاست را به لحاظ سادگی و سرعت بالا آموزش داده و در ادامه سعی خواهیم کردن عملیات قبلی را با استفاده از کدنویسی دوباره انجام دهیم.
- یک روش برنامه نویسی استفاده از آیتم دیتاست و انجام بسیاری از عملیات با کمک امکانات ویژوال و ویزاردهای موجود است. روش دیگر استفاده از تکنولوژی پیشرفته LINQ و انجام کارهای بصورت ویژوال است.روش اصلی و کامل تر، استفاده از کلاس های موجود و انجام عملیات با روش کدنویسی است.
- برای استفاده از هر تکنولوژی لازم است تا فضای نامی آن در ابتدای برنامه معرفی شده و چهار کلاس فراهم کننده داده با پیشوند مناسب استفاده شوند . (یکی از پیشوندهای Sql ، OleDb،Odbc و غیره )