PDA

View Full Version : مقالات آموزش مفاهیم پایگاه داده در سی شارپ (Intro to C# ADO.NET)



farshid.70
چهارشنبه 13 اردیبهشت 1396, 12:23 عصر
من خیلی از دوستانی برنامه نویسو دیدم که با این مفاهیم زیاد آشنایی ندارند میتونن از مقالاتی که بهشون معرفی می کنم کمک بگیرن:
در تقریبا تمامی برنامه های امروزی لازم است تا حجم متعارفی از داده ها (کم یا زیاد) را مدیریت کرد. این مدیریت شامل خواندن، افزودن، ویرایش و یا حذف داده می تواند باشد. برای این منظور در بستر دات نت کتابخانه ای غنی به نام ADO.NET طراحی گردیده که به ما در پیاده سازی فرآیندهای مربوط به این امر کمک زیادی خواهد کرد.
مقدمه ای بر ADO.NET این درس مقدمه ایست بر ADO.NET. این بخش مفاهیم اولیه ی ADO.NET و اهدافی را که در بخش های بعدی باید فرا بگیرید، معرفی می نماید. اهداف این درس ذیلا عنوان شده اند:


ADO.NET چیست؟
Data Provider چیست؟
Connection Object چیست؟
Command Object چیست؟
DataReader Object چیست؟
DataSet Object چیست؟
DataAdapter Object چیست؟

مقدمه ADO.NET یک مجموعه ی شی گرا (Object-Oriented) از کتابخانه هایی است که به شما اجازه می دهند با Data Source (منبع داده) در ارتباط باشید. به طور کلی Data Source یک پایگاه داده (database) می باشد، اما در عین حال می تواند یک فایل متنی، یک صفحه اکسل، و یا یک فایل XML نیز باشد. به طور پیش فرض ما در این درس به ADO.NET به عنوان راهی برای ارتباط با پایگاه داده نگاه خواهیم کرد.
انواع مختلفی از پایگاه داده در دسترس می باشند. از بین آنها می توان به SQL Server، Microsoft Access، Oracle، Borland Interbase، و IBM DB2 اشاره کرد. در راستای پیشبرد اهداف این درس، در تمامی مثال ها از SQL Server استفاده می شود.
MSDE2000 در واقع نسخه ی کوتاه شده ی SQL Server می باشد. بنابراین، هرآنچه که شما در این مبحث می آموزید و نیز تمامی کدها بوسیله SQL Server کار می کنند. این درس منحصرا برای ADO.NET طراحی شده است و مثال های موجود در این بخش از پایگاه داده Northwind استفاده خواهند نمود. MSDE بخشی ازServer SQL نیست اما یکی از Data Source هایی است که از طریق ADO.NET می توانید با آن در تماس باشید.
Data Providers میدانیم که ADO.NET این امکان را برای ما فراهم می آورد که با انواع مختلفی از پایگاه داده ها و Data Source ها در ارتباط باشیم. با این وجود، مجموعه ی مقادیر واحدی از کلاس هایی که به شما اجازه دهند این کار را به صورت کلی انجام دهید، وجود ندارد. از آنجایی که Data Source های مختلف پروتکل های متفاوتی را ارایه می دهند، به روشی نیاز داریم که از طریق استفاده از پروتکلِ صحیح با data source ها ارتباط برقرار نماییم. برخی از Data Source های قدیمی از پروتکل ODBC استفاده می کنند، برخی از Data Source های جدیدتر از پروتکل OLeDb بهره می گیرند، و هر روز Data Source های بیشتری به وجود می آیند که به شما اجازه می دهند مستقیما از طریقِ کتابخانه های کلاس .NET ADO.NET با آنها در تماس باشید.
ADO.NET یک روش نسبتا رایج را برای ارتباط با Data Source ها فراهم می کند. البته چندین مجموعه مختلف از کتابخانه ها برای هر روشی که به منظور برقراری ارتباط با Data Source استفاده می کنید وجود دارد. این برنامه ها Data Provider نامیده می شوند و معمولا بسته به نوع Data Source و یا پروتکلی که از طریقِ آن با Data Source ارتباط برقرار می گردد، نامگذاری می شوند. جدول 1 لیستی از معروف ترین Data Provider ها، API prefix ی که استفاده می نمایند، و نوعِ Data Provider هایی که به شما اجازه می دهند با آنها ارتباط برقرار نمایید را، ارایه نموده است.
Data Provider های ADO.NET کتابخانه هایی هستند که به یک متد اجازه می دهند که به data source های ویژه یا پروتکل ها وصل شوند. APL ها دارای نشانه های پیشوندی (prefix) می باشند که مشخص می کند از کدام data provider پشتیبانی می کنند.
نامِ Provider
API Prefix
توصیفِ Data Source

ODBC Data Provider
Odbc
Data source به همراه یک واسطِ ODBC

OleDb Data Provider
OIeDb
Data Source هایی که یک واسطِ OLeDb مثل Access یا Excel ،را ارایه می دهد

Oracle Data Provider
Oracle
برای Oracle Database ها

SQL Server Data Provider
Sql
برای ارتباط با Microsoft Sql Server

Borland Data Provider
Bdp
دسترسی کلی به database های فراوانی از قبیل Interbase، SQL Server، IBM DB2، و Oracle



یک مثال می تواند به شما در درکِ بهتر مفهومِ API Prefix کمک نماید. یکی از اولین اشیای ADO.NET، شی اتصال (Connection Object) است که موجب برقراری ارتباط (Connection) با Data Source می گردد. اگر برای دسترسی به یک Data Source به منظورِ ارایه ی یک واسطِ OleDb، از OleDb Data Provider استفاده شود، می بایست از یک آبجکت اتصال (Connection Object) به نام OleDbConnection بهره گرفت. به همین صورت، نامِ آبجکت اتصال (Connection Object) باید با پیشوندِ Odbc برای آبجکتOdbcConnection بر روی یک Odbc Data Source، و یا به صورتِ پیشوند Sql برای SqlConnection object بر روی یک پایگاه داده SQL Server ، عنوان شوند. از آنجایی که در این مبحث از MSDE (یک ویرایش کوچک SQL Server) استفاده می شود، تمامیِ اشیای API دارای پیشوندِ Sql می باشند، برای مثال SqlConnection.
ADO.NET Objects ADO.NET شاملِ اشیای فراوانی است که شما می توانید از آنها برای کار با داده ها استفاده نمایید. این بخش، برخی از اشیای اولیه ی مورد استفاده را معرفی می نماید. در ادامه ی این مبحث، با اشیای ADO.NET بیشتری از نظرِ اینکه چگونه در یک فرآیند مورد استفاده قرار می گیرند آشنا خواهید شد. اشیایی که در زیر عنوان شده اند مواردی هستند که باید آنها را یاد بگیرید.
The SqlConnection Object برای ارتباط با یک پایگاه داده، باید با آن یک اتصال (Connection) برقرار نمود. این اتصال (Connection) به شما کمک می کند که سرور پایگاه داده، نامِ پایگاه داده، username، password، و پارامترهای دیگری که برای برقراری اتصال با پایگاه داده مورد نیاز هستند را تعیین نمایید. آبجکت اتصال (Connection Object) توسط اشیای ویژه اجرای دستورات مرتبط با داده ها روی پایگاه داده (command objects) مورد استفاده قرار می گیرد، بنابراین به آنها اعلان خواهد شد که از کدام database برای اجرای دستور استفاده نمایند.
The SqlCommand Object فرایند ارتباط با یک پایگاه داده بدین معناست که باید عملیاتی را که قرار است اتفاق بیفتد تعیین نمود. این کار توسط شی فرمان (Command Object) صورت میگیرد. از آبجکت فرمان (Command Object) برای ارسال دستوراتِ SQL به پایگاه داده استفاده می شود. آبجکت فرمان (Command Object) برای نشان دادن اینکه به کدام پایگاه داده باید متصل شد، از آبجکت اتصال (Connection Object) استفاده می کند. می توان برای اجرای مستقیم یک دستور، و یا تخصیصِ یک نشانه گذار (Reference)به آبجکت فرمان (Command Object) برای یک SqlDataAdapter، از شی فرمان (Command Object) به تنهایی استفاده نمود. این SqlDataAdapter مجموعه ای از فرمان ها (Command) را که بر روی گروهی از داده ها کار میکنند، نگهداری می نماید.
The SqlDataReader Object بسیاری از عملیات های داده ای (Data Operations) نیازمند این هستند که تنها جریانی از داده ها برای خواندن در دسترس باشند. شی DataReader این امکان را فراهم می کند که به نتایجِ یک دستورِ SELECT از یک آبجکت فرمان (Command Object) دست پیدا کنید. به منظور پیشبرد عملیات اجرایی، داده های بازگردانی شده از یک DataReader، جریانی سریع و منحصرا پیشرونده (Forward Only) از داده ها می باشد. این بدان معناست که تنها قادرید داده را به روش ترتیبی از جریان بیرون بکشید. این موضوع از نظر سرعت بهینه و به صرفه است، اما در صورتی که بخواهید داده ها را دستکاری کنید، DataSet آبجکت بهتری برای اجرا خواهد بود.
The DataSet Object اشیای DataSet یک نماینده مقیم در حافظه از پایگاه داده می باشند. آنها شامل چندین شی DataTable هستند که درست مانند جداولِ پایگاه داده معمولی، دارای سطر و ستون می باشند. حتی می توان روابط بین جداول را به منظور ایجاد روابط کل به جزء (parent-child)، تعریف نمود. Dataset ها به طور خاص برای کمک به مدیریت داده های مقیم در حافظه و برای پشتیبانی از عملیات داده ای که دیگر در دسترس نیستند (Disconnected Operations) ، طراحی شده اند. DataSet آبجکتی است که بوسیله ی تمامی Data Provider ها استفاده می شود، و به همین دلیل است که فاقدِ هرگونه پیشوند مخصوصِ Data Provider می باشد.
The SqlDataAdapter Object گاهی اوقات داده ای که با آن کار می کنید، داده ای تنها خواندنی (Read Only) است و به ندرت نیاز خواهید داشت که تغییراتی را بر روی منابعِ داده ای مشخص شده، اعمال نمایید. بعضی موقعیت ها همچنین ملزم به ذخیره سازی داده ها در حافظه می باشند تا میزانِ فراخوانی های پایگاه داده را برای داده هایی که تغییر نمی کنند، کاهش دهند. Date Adapter انجام این کارها را با کمک به مدیریت داده ها در حالتِ Disconnected، آسان می کند. Data Adapter به هنگام خواندن داده ها یک DataSet را پر نموده و در زمان بازگشت تغییرات به پایگاه داده، یک دسته ی تکی را می نویسد. Data Adapter حاوی مرجعی برای آبجکت اتصال (Connection Object) بوده و به هنگام خواندن فرمان به پایگاه داده و یا نوشتن به آن، به طور خودکار اتصال را قطع و وصل می کند. بعلاوه، Data Adapter حاویِ نشانگرهای آبجکت فرمان (Command Object) برای دستورهای SELECT، INSERT، UPDATE، و DELETE می باشد. در DataSet، برای هر جدول یک Data Adapter تعریف شده است و این موجب می شود که از تمامی ارتباط ها در پایگاه داده محافظت شود. تمام کاری که باید انجام دهید این است که به Data Adapter بگویید که چه موقع داده ها را از پایگاه داده بارگذاری نموده و چه هنگام دوباره در پایگاه داده ثبت کند.
خلاصه ADO.NET عبارت است از فن آوریِ .NET برای ارتباط با منابع داده ای (Data Source). بسته به نوع پایگاه داده و یا پروتکلی که مورد استفاده قرار می گیرد، Data Provider های مختلفی وجود دارند که امکان ارتباط با Data Source های مختلف را فراهم می آورند. بدون در نظر گرفتنِ نوعِ Data Provider مورد استفاده، از مجموعه ای مشابه از اشیا برای تعامل با یک Data Source استفاده می گردد. SqlConnection Object این امکان را به وجود می آورد که اتصال (Connection) با Data Source مدیریت شود. SqlCommand Objects موجب می شود که ارتباط با Data Source برقرار شده و دستوراتی را برای آن ارسال نمایید. به منظور استفاده از قابلیتِ دسترسیِ خواندنی سریع و منحصرا رو به جلوی داده ها) fast forward-only read access to data)، از SqlDataReader استفاده می گردد. اگر میخواهید با داده های Disconnected کار کنید، از یک DataSet بهره گرفته و با استفاده از SqlDataReader ، عملیات خواندن از Data Sourceو نوشتن به آن را، پیاده سازی نمایید.
دانلود مقالات (http://www.tahlildadeh.com/ArticleDetails/%d8%a7%d8%aa%d8%b5%d8%a7%d9%84-SQL-Server-SqlConnection)