ADO.NET در سی شارپ
ADO.NET یا ActiveX Data Object مجموعه کامپوننت هایی است که برای دسترسی به داده های بانک اطلاعاتی در .NET استفاده می شود . گر چه در این سایت مقالات و کتابها و سورسهایی در رابطه با استفاده از ADO.NET در سی شارپ وجود دارد ولی آوردن این مبحث مهم در سایت خالی بود که در این پست قرار میدهم. برای مشاهده این مبحث به ادامه مطلب بروید. تعریف : به مجموعه کامپوننت هایی که برای دسترسی به داده های بانک اطلاعاتی در .NET استفاده می شود Ado.Net گفته می شود .
1- کلاس SqlConnection :
در کد بالا: local نام سروری است که بانک بر روی آن قرار دارد که در اینجا چون سرور خود کامپیوتر ماست مقدار آن را local قرار داده ایم که می توانیم به جای آن از “.” (نقطه) هم استفاده کنیم .
در کد بالا : Con یک نمونه جدید از نوع SqlConnection است که برای استفاده از آن آن را ساخته ایم . متصل و قطع کردن اتصال به یک بانک اطلاعاتی :
2- کلاس SqlCommand :
نکته – در برنامه های بانک اطلاعاتی معمولا از اشیای ایجاد شده از کلاس SqlCommand به تنهایی استفاده نمی کنند بلکه آنها را همراه با DataSet ها و DataAdapter ها به کار می برند .
ارائه مراحل کلی یک ارتباط و مثال
1- اضافه نمودن فضا نام های مورد نیاز : برای ارتباط با بانک های اطلاعاتی به فضا نام System.Data و همچنین فضا نام System.Data.SqlClient برای کار با دیتابس SQLServer و فضا نام System.Data.Oledb برای کار با بانک Access نیازمندیم . 2- تعیین رشته اتصال (ConnectionString) : رشته اتصال رشته شامل تنظیماتی جهت اتصال به بانک اطلاعاتی می باشد ، این رشته برای هر بانک متفاوت خواهد بود 3-تعیین شی اتصال (Connection Object) : کلاسی است برای برقراری ارتباط با بانک اطلاعاتی است ، این شی که از کلاس DbConnection ارث بری می کند اعمالی مانند باز و بسته کردن اتصال با بانک را از طریق رشته اتصال انجام می دهد. 4- تعیین رشته تقاضا (Command Text) : همان دستورات SQL است که جهت یک تفاضا ارائه می گردد ، این تفضا جهت دریافت اطلاعات (Select) درج اطلاعات (Insert) ، ویرایش اطلاعات(Update) و یا حذف اطلاعات(Delete) یا... صورت می گیرد . 5- تعیین شی تقاضا (Command Object) : کلاسی است جهت ارسال و دریافت تقاضا از طریق شی اتصال به بانک اطلاعاتی
معرفی خاصیت ها و دو کد نمونه Placeholder ها :متغیرهایی هستند که در یک دستور Sql قرار می گیرندو می توانند در زمان اجرای برنامه جای خود را با عبارتی خاص عوض کنند این متغیرها با علامت @ در یک دستور مشخص می شوند . و هنگامی که از آنها در یک دستور Sql استفاده کنیم قبل از اجرای دستور باید تمامی آنها را با مقادیر مناسب تعویض کنیم . که این کار به صورت اتوماتیک توسط برنامه در زمان اجرای دستور انجام می شود.اما باید پارامترهایی را ایجاد کرده و آن را در لیست parameters در شئ ایجاد شده از کلاس SqlCommand قرار دهیم تا برنامه بداند هنگام اجرای دستور هر placeholder را باید با مقدار چه متغیری در برنامه عوض کند . نکته – هیچ ضرورتی ندارد که نام یک placeholder همنام فیلدی باشد که قرار است مقدار placeholder در آن قرار بگیرد .خاصیت parameters کلاس SqlCommand :برای دسترسی به لیست پارامترهایی که در یک شئ از کلاس SqlCommand وجود دارد می توانیم از خاصیت parameters در این کلاس استفاده کنیم . این خاصیت حاوی لیستی از placeholder ها به همراه متغیرهای وابسته به آنها است بنابراین در کد قبل از اجرای دستور ، باید به وسیله ی این لیست مشخص کنیم که هر placeholder با مقدار چه متغیری باید تعویض شود .مثالی از درج رکورد در بانک اطلاعات : در این کد می خواهیم در جدول student از بانک university ، یک رکورد اضافه کنیم این جدول شامل سه فیلد می باشد که اطلاعات آن توسط کاربر در TextBox ها وارد می شود و برنامه با گرفتن این اطلاعات آنها را در جدول بانک ذخیره می کند . Strcon= “Data Source = (local);Initial Catalog = university;Integrated Security = True”; SqlConnection Con = New SqlConnection(Strcon); SqlCommand Cmd = New SqlCommand(); Cmd.Connection = Con; Cmd.CommandText= “ insert into student id=@id,lname=@lname,fname=@fname”; Cmd.Parameters.AddWithValue(“@id”,TextBox1.Text); Cmd.Parameters.AddWithValue(“@lname”,TextBox2.Text); Cmd.Parameters.AddWithValue(“@fname”,TextBox3.Text); Con.Open(); Cmd.ExecuteNonQuery(); Con.Close(); توضیح کد بالا : در خط 1 یک متغیر از نوع String تعریف کردیم و راطلاعات اتصال به بانک را در آن قرار دادیم (connectinString ) .خط 2 : شیئی از نوع SqlConnection ساختیم و رشته StrCon را به عنوان پارامتر به آن فرستادیم .خط 3 : شیئی از نوع SqlCommand ساختیم .خط 4 : خاصیت Connection کلاس SqlCommand را برابر شیئ ساخته شده از کلاس SqlConnection قرار دادیم .خط 5 : دستور اجرایی Sql را به شیئ SqlCommand نسبت دادیم (با استفاده از خاصیت CommandText ).خط 6 ، 7 ، 8 : با استفاده از خاصیت Parameters کلاس SqlCommand به placeholder ها مقدار دادیم .خط 9 : اتصال به بانک را برقرار می کنیم .خط 10 : متد اجرایی ExecuetNonQuery را اجرا می کنیم .خط 11 : اتصال برنامه با بانک را قطع می کنیم .مثالی از اصلاح (update ) اطلاعات یک رکورد :حالا می خواهیم اطلاعات یک رکورد از جدول student را اصلاح کنیم و تغییرات را ثبت نماییم . برای این منظور جدول مورد نظر دارای یک کلید است که می توان با استفاده از آن به تمامی اطلاعات رکورد موردنظر دسترسی پیدا کرد . در این جدول فیلد id (شماره دانشجویی ) کلید جدول است . Strcon= “Data Source = (local);Initial Catalog = university;Integrated Security = True”; SqlConnection Con = New SqlConnection(Strcon); Cmd.CommandText= “update student lname=@lname,fname=@fname where id=@id”; Cmd.Parameters.AddWithValue(“@id”,TextBox1.Text); Cmd.Parameters.AddWithValue(“@lname”,TextBox2.Text); Cmd.Parameters.AddWithValue(“@fname”,TextBox3.Text); Con.Open(); Cmd.ExecuteNonQuery(); در توضیح کد بالا باید این رو بگم که تمام مراحل آن مانند کد insert می باشد به جز دستور Sql که در خط 5 آمده است و در اینجا update می باشد . کلاس SqlDataAdapter کلاس SqlDataAdapter :این کلاس در برنامه های بانک اطلاعاتی ، همانند پلی بین جداول اطلاعاتی و نیز داده های موجود در حافظه که به وسیله ی DataSet نگهداری می شوند ، عمل می کنند . و برای استفاده از آن در برنامه باید یک شیئ از نوع آن ساخته شود . SqlDataAdapter da = New SqlDataAdapter (); این کلاس برای دسترسی به بانک اطلاعاتی از شیئ ایجاد شده از کلاس SqlCommand ای که به آن نسبت داده می شود استفاده می کند .و برای دسترسی به بانک اطلاعات از کلاس SqlCommand و SqlConnection استفاده می کند . da . SelectCommand = New SqlCommand(); خاصیت SelectCommand : کلاسSqlDataAdapter دارای خاصیتی این خاصیت است .خاصیت SelectCommand حاوی شیئی از نوع SqlCommand است که از دستور موجود در آن شیئ برای دریافت داده های موردنیاز در برنامه از بانک اطلاعاتی به کار می رود یعنی SqlDataAdapter ، دستوری را که در خاصیت SqlCommand نگهداری می شود را روی بانک اطلاعاتی اجرا کرده و نتایج آن را در کلاس هایی مانند DataSet و یا DataTable قرار می دهد تا در برنامه مورد استفاده قرار گیرند .علاوه بر این ، کلاس SqlDataAdapter دارای خاصیت هایی به نام DeleteCommand ، InsertCommand و UpdatCommand است که به هر یک شیئی از نوع SqlCommand را قبول می کنند و DataAdapter از دستور ذخیره شده در هر یک از آنها به ترتیب بای حذف ، درج و ویرایش داده ها در بانک اطلاعاتی استفاده می کند . * هنگامی که بخواهید با استفاده از کلاس DataAdapter اطلاعات مورد نیاز خود را از یک بانک اطلاعاتی دریافت کنید ابتدا باید خاصیت SelectCommand را در DataAdapter تنظیم کنید *خاصیت SelectCommand شیئی از نوع SqlCommand دریافت کرده که این شیئ مشخص می کند داده ها چگونه باید از بانک اطلاعات انتخاب شده و نیز چه داده هایی باید انتخاب شوند . *اشیاء از نوع SqlCommand نیز دارای خاصیتهایی هستند که قبل از استفاده باید آنها را تنظیم کرد این خاصیت ها عبارتند از : - Connection : یک شیئ از کلاس SqlConnection در این قسمت قرار گرفته و نحوه ی اتصال به بانک اطلاعاتی را مشخص می کند . da.SelectCommand.Connection = Con; - CommandText : دستور Sql و یا پروسیجر ذخیره شده در بانک اطلاعاتی که باید توسط این شیئ اجرا شود ، در این قسمت ذخیره می شود . da.SelectCommand.CommandText = “select fields from table ”; توضیح کد بالا :در اینجا نوع دستور select می باشد و منظور از fields ، نام فیلدهایی است که می خواهیم اطلاعات آنها را استخراج کنیم اگر بخواهیم همه ی آنها را استخراج کنیم از * استفاده می کنیم و منظور از table نیز نام جدولی است که می خواهیم اطلاعات را از آن استخراج کنیم . نمونه کد :برای مثال می خواهیم اطلاعات فیلدهای نام ، نام خانوادگی و شماره دانشجویی از جدول دانشجو را استخراج کنیم و برای کارمورد نظر استفاده کنیم (پس ما در اینجا فقط اطلاعات را استخراج می کنیم ). SqlConnection Con = New SqlConnection(connectionstring); - 1 دسترسی اطلاعات و اتصال داده ها
کامپوننت DataSet : کامپوننت BindingSource : به نقل از بلاگ csharpdotnet ![]() مرتبط با موضوع : سطح دسترسی Access Modifiers [سه شنبه، 4 مرداد ماه ، 1390] آموزش نحوه Hidden (مخفی) کردن فایل در سی شارپ [دوشنبه، 23 خرداد ماه ، 1390] آموزش کار با رجیستری در سی شارپ [جمعه، 15 مرداد ماه ، 1389] مقدمه ای بر #C [چهارشنبه، 14 بهمن ماه ، 1388] آموزش جامع ویژوال #C [سه شنبه، 13 بهمن ماه ، 1388] |
آخرین مقالات
پربیننده ترین مقالات
مقالات تصادفی
امتیاز دهی به مطلب
تعداد آراء: 2 ![]() انتخاب ها
|
