تبلیغات
آموزشASP.NET - ذخیره و بازیابی داده توسط ADO.NET (بخش دوم)
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 

آموزش asp.net آموزش asp.net آموزش asp.n

آموزش asp.net آموزش asp.net آموزشasp.nt

در بخش اول این مقاله با نحوه ایجاد  Connection و  Dataset آشنا شدیم . همانگونه که اشاره گردید از مجموعه های Tables,Rows و Columns برای دستیابی به داده موجود در یک DataSet استفاده می گردد. با استفاده از مجموعه Rows می توان سطرهائی از یک  DataSet را تغییر، حذف و یا سطر جدیدی را به آن اضافه نمود. در ادامه به بررسی نحوه انجام عملیات فوق ، خواهیم پرداخت . در این رابطه از یک بانک اطلاعاتی نمونه ( SQL Server ) با نام Contact ، یک DataSet نمونه با نام Dataset11  ، یک کنترل DataGrid بر روی فرم وب با نام DataGrid1 و سه Button به منظور انجام عملیات

فرم وب WebForm2.aspx : ( شامل DataGrid ، سه Button و اشیاء لازم به منظور ارتباط با بانک اطلاعاتی )

تنظیم خصلت های  DataGrid :

اجرای اولیه WebForm2.aspx :

اضافه نمودن رکورد
 برای افزودن یک رکورد به Data Set ، می بایست یک شی جدید Row ، ایجاد و در ادامه آن را به مجموعه Rows مربوط به شی DataSet اضافه نمود. کد زیر، نحوه انجام عملیات فوق را نشان می دهد :

VB.NET ::Add Record

Private Sub butAddRow_Click (ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles butAddrow.Click
 Dim rowNew As DataSet1.ContactRow = DataSet11.Contact.NewRow
rowNew.Fname = "
مدیریت سایت "
rowNew.Lname = "
مدیریت سایت "
rowNew.Email = "Info@Srco.ir"
DataSet11.Contact.Rows.Add(rowNew)
End Sub

پس از فعال نمودن ( کلیک ) دکمه "اضافه نمودن رکورد" ، یک سطر با اطلاعات فوق به  Dataset اضافه شده و در ادامه بهنگام سازی بانک اطلاعاتی از طریق DataSet می شود.

ویرایش یک رکورد
برای تغییر یک سطر در Data Set ، در ابتدا با استفاده از متد FindBy  سطر مربوطه را پیدا نموده ( بر اساس یک کلید جستجو که معمولا" فیلدی است که در بانک اطلاعاتی به عنوان "کلید اولیه " ، تعریف شده است ) و در ادامه می توان  تغییرات دلخواه را بر روی فیلدهای اطلاعاتی ، اعمال نمود( فیلد ID به عنوان DataKeyField در DataSet  تعریف شده است ) .کد زیر، نحوه انجام عملیات فوق را نشان می دهد :

VB.NET ::Update Record

Private Sub butChangeRow_Click (ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles butChangeRow.Click
 Dim rowChange As DataSet1.ContactRow
rowChange = DataSet11.Contact.FindByID("
2")
rowChange.Fname = "
ایران"
 End Sub

در مثال فوق ، سطری که دارای ID با شماره 2 می باشد ، با استفاده از متد FindBy پیدا شده و در ادامه فیلد Fname آن به " ایران" ، تغییر داده می شود. پس از اجرای برنامه و فعال نمودن دکمه " ویرایش رکورد " ، تغییرات در DataSet اعمال و در ادامه بهنگام سازی بانک اطلاعاتی از طریق DataSet می شود.

حذف رکورد
برای حذف یک سطر در Data Set ، در ابتدا با استفاده از متد FindBy  یک سطر از جدول را در اختیار گرفته و در ادامه با استفاده از متد Delete مربوط به شی Row آن را حذف می نمائیم .کد زیر، نحوه انجام عملیات فوق را نشان می دهد :

VB.NET :: Delete Record

Private Sub butDeleteRow_Click (ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles butDeleteRow.Click
   Dim rowDelete As DataSet1.ContactRow
   rowDelete = DataSet11.Contact.FindByID("9")
  rowDelete.Delete()
 End Sub

در مثال فوق ، سطری که دارای ID با شماره 9 می باشد ، با استفاده از متد FindBy ، پیدا شده  و در ادامه امکان حذف آن با استفاده از متد Delete ، فراهم می گردد. پس از اجرای برنامه و فعال نمودن دکمه " حذف رکورد " ، تغییرات در DataSet اعمال و در ادامه بهنگام سازی بانک اطلاعاتی از طریق DataSet انجام می شود.

بهنگام سازی بانک اطلاعاتی از طریق DataSet
با استفاده از متد Update مربوط به Adapter می توان اقدام به بهنگام سازی بانک اطلاعاتی از طریق شی DataSet نمود.عملیات فوق، معمولا" پس از پردازش تمامی رویدادهای کنترل بر روی صفحه انجام می شود ، بنابراین می توان متد Update را  از طریق رویداد Page_PreRender فعال نمود ( فراخوانی ).

VB.NET :: Update Database From DataSet

Private Sub Page_PreRender (ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles MyBase.PreRender
  SqlDataAdapter1.Update(DataSet11)
End Sub

ADO.NET در زمان بهنگام سازی یک بانک اطلاعاتی از طریق  Data Set ، عملیات زیر را انجام می دهد:

  • تشخیص تغییرات بر روی Data Set با بررسی خصلت RowState مربوط به هر یک از اشیاء DataRow
  • فراخوانی InsertCommand,DeleteCommand و یا UpdateCommand مربوط به شی Adapter  به منظور اعمال تغییرات لازم دربانک اطلاعاتی
  • Reset نمودن خصلت های RowState بهنگام شده مربوط به اشیاء DataRow به UnChanged

خصلت های InsertCommand,DeleteCommand و UpdateCommand مربوط به شی Adapter به صورت اتوماتیک و از طریق شی SelectCommand ایجاد می گردند(زمانی که Data Set از طریق یک Adapter ( در حالت Design ) ایجاد می گردد). هر یک از خصلت های فوق ، یک شی OleCommand و یا SqlCommand را ارائه می نمایند . اشیاء Command دارای خصلت های زیر می باشند که نحوه اجرای Command را مشخص می نمایند .

  • خصلت CommandText شامل عبارت SQL و یا نام Stored Procedure به منظور اجرای دستور است.

  • خصلت CommandType نحوه اجرای دستور را با استفاده از تنظیمات زیر مشخص می نماید :
     مقدار  Text ، باعث اجرای دستور به عنوان یک عبارت SQL می گردد ( مقدار پیش فرض )
     مقدار StoredProcedure ، باعث اجرای دستور به عنوان یک Stored Procedure در بانک اطلاعاتی می گردد .
     مقدار TableDirect ، باعث برگرداندن تمامی جدول می گردد . تنظیم فوق صرفا" در رابطه با OLE DB.NET  استفاده می شود ( Data Provider )

می توان محتوی DataSet و نحوه بهنگام سازی داده را با تغییر عبارت SQL استفاده شده توسط این اشیاء ، انجام داد .

به منظور مشاهده و یا تغییر دستورات فوق ، مراحل زیر را دنبال می نمائیم :

  • در پنجره Properties ، بر روی خصلت Command  مورد نظری که قصد تغییر آن را داریم ، کلیک می نمائیم.  ( Double-Click
  • خصلت CommandText را برای Command انتخاب و در ادامه با کلیک نمودن بر روی دکمه مربوطه ( Ellipsis ) ، جعبه محاوره ای Query Builder نمایش داده می شود.

  • انتخاب ستون هائی که قصد استفاده از آنان در Command را داریم ( فعال نمودن Check Box ) ویا تایپ مستقیم عبارت SQL پانل مربوط به Command .

ایجاد یک ارتباط با بانک اطلاعاتی در زمان اجراء
ایجاد اشیاء مربوط به داده در حالت Design روشی مناسب برای فراگیری نحوه دستیابی داده توسط ADO.NET می باشد، چراکه ویژوال استودیو دات نت ، به صورت اتوماتیک اشیاء Connection و Adapter را ایجاد می نماید . برخی از  تتظیمات مربوط به خصلت ها نظیر ConnectionString پیچیده بوده و ایجاد آنان بدون کمک Design mode امری مشکل به نظرمی آید. پس از ایجاد یک Connection در حالت Design ، می توان با استفاده از عملیات Copy&Paste، تنظیمات مربوط به خصلت را به منظور ایجاد Connection مشابه در کد مورد نظر،استفاده نمود . دستیابی به اشیاء داده از طریق  کد، مشابه مراحل گفته شده برای دستیابی به داده در حالت Design می باشد :

  • مرحله اول : ایجاد شی Connection
  • مرحله دوم : ایجاد یک شی Adapter
  • مرحله سوم : ایجاد یک شی Data Set
  • مرحله چهارم : فراخوانی متدها بر روی شی Adapter به منظور پرنمودن و یا بهنگام سازی Data Set
  • مرحله پنجم : استفاده از فرآیند نسبت دهی داده و یا روش های دیگر به منظور نمایش داده از طریق  Data Set

کد زیر اشیاء داده را ایجاد و داده موجود در یک بانک اطلاعاتی SQL را نمایش می دهد :

VB.NET ::Create data objects&Display data

Private Sub Page_Load (ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles MyBase.Load

مرحله اول : ایجاد Connection

Dim sqlConnectContactMgmt As New SqlConnection ("Server=(local) ; database=Contact;Trusted_Connection=yes"

مرحله دوم : ایجاد یک Data Adapter

Dim  sqladapterContactMgmt As New SqlDataAdapter("Select * From Contact",

SqlConnectContactMgmt)

مرحله سوم : ایجاد یک Data Set

Dim dsContacts As New DataSet( )

مرحله چهارم : پر نمودن Data Set

sqladapterContactMgmt.Fill ( dsContacts , "Contact")

مرحله پنجم : نمایش اطلاعات در یک Data Grid

  DataGrid1.DataSource = dsContacts.Tables("Contact").DefaultView
  DataGrid1.DataBind( )
End Sub

بهنگام سازی  بانک اطلاعاتی در زمان اجراء
همانگونه که اشاره گردید ، ADO.NET از خصلت های DeleteCommand,InsertCommand و UpdateCommand مربوط به شی Adapter برای بهنگام سازی بانک اطلاعاتی از طریق Data Set استفاده می نماید . زمانی که یک Adapter در زمان اجراء ایجاد می گردد ، می بایست خصلت های فوق را در ابتدا ایجاد تا امکان فراخوانی متد Update مربوط به شی Adapter فراهم گردد . برای ایجاد خصلت های فوق در زمان اجراء مراحل زیر را دنبال می نمائیم :

  • مقداردهی مناسب شی SelectCommand مربوط به Adapter .  تکنولوژی ADO.NET از خصلت CommandText مربوط به شی SelectCommand برای ایجاد تنظیمات لازم در ارتباط با خصلت های  InsertCommand,DeleteCommand  و UpdateCommand استفاده می نماید .

  •  ایجاد یک شی Command Builder برای شی Adapter . شی Command Builder  به نوع Data Provider بستگی دارد : OleDbCommandBuilder و SqlCommandBuilder .

کد زیر نحوه بهنگام سازی یک بانک اطلاعاتی را نشان می دهد :

VB.NET ::Updating DataBase

Private Sub Page_Load (ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles MyBase.PreRender

مرحله اول : ایجاد Connection

Dim ContactMgmt As New SqlConnection ("Server=(local) ; database=Contact;Trusted_Connection=yes"
Dim  adapterContactMgmt As New SqlDataAdapter("Select * From Contact",ContactMgmt)

مرحله دوم : ایجاد یک Data Set

Dim dsContacts As New DataSet( )
adapterContactMgmt.SelectCommand.CommandText = "SELECT * FROM Contact"

مرحله سوم : ایجاد دستورات Insert ,Delete و Update بصورت اتوماتیک

Dim CmdContanctMgmt As SqlCommandBuilder = New SqlCommandBuilder ( adapterContactMgmt )

مرحله چهارم : ایجاد یک Row جدید

Dim rowInsert As DataRow = dsContacts.Tables("Contact").NewRow
  RowInsert("Fname") = "
مدیریت سایت "
  RowInsert("Lname ") = "
مدیریت سایت"
  RowInsert("Email ") ="Info@Srco.ir"
dsContacts.Tables ("Contact") .Row.Add(RowInsert)

مرحله پنجم : بهنگام سازی بانک اطلاعاتی

adapterContactMgmt.Update(dsContacts.Tables("Contact")

End Sub

در بخش سوم این مقاله با نحوه استفاده از Data Set در فرم های وب ،آشنا خواهیم شد.

asp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزش

asp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزشasp.netاموزش





نوع مطلب :
برچسب ها :
لینک های مرتبط :


سه شنبه 8 مرداد 1398 10:54 ب.ظ

Kudos! Excellent stuff!
cialis from canada canadian pharmaceuticals stocks candida viagra trusted pharmacy canada scam drugstore online canadian drugs canadian pharmacys order canadian prescriptions online canadian drugs best canadian pharmacies online
دوشنبه 3 تیر 1398 07:55 ق.ظ

Beneficial facts. Cheers!
acheter cialis kamagra miglior cialis generico cialis et insomni american pharmacy cialis how much does a cialis cost we choice free trial of cialis cialis dose 30mg cialis authentique suisse cialis patent expiration cialis soft tabs for sale
شنبه 1 تیر 1398 08:23 ق.ظ

Kudos! Helpful information.
buy cialis sample pack cialis italia gratis we choice free trial of cialis ou acheter du cialis pas cher cialis dosage tadalafil 10 mg cialis super kamagra cialis 5mg billiger cialis para que sirve usa cialis online
جمعه 31 خرداد 1398 04:04 ب.ظ

Amazing posts. Appreciate it.
cialis 5mg prix cialis pills boards discount cialis cialis prezzo di mercato cialis uk buying cialis in colombia interactions for cialis buy cialis online nz discount cialis cialis online holland
پنجشنبه 30 خرداد 1398 04:54 ق.ظ

With thanks. A good amount of facts!

weblink price cialis walgreens price for cialis cialis e hiv cialis 5 mg we recommend cialis best buy when will generic cialis be available cialis usa cost cialis coupon cialis in sconto cialis rckenschmerzen
دوشنبه 27 خرداد 1398 11:05 ب.ظ

Wow loads of excellent knowledge!
buy cialis uk no prescription tadalafilo buying brand cialis online trusted tabled cialis softabs cialis ahumada cialis cipla best buy precios de cialis generico dosagem ideal cialis safe dosage for cialis cialis great britain
دوشنبه 27 خرداد 1398 07:52 ق.ظ

You said this exceptionally well!
generic cialis pro cialis canada acquistare cialis internet cialis qualitat fast cialis online tadalafil tablets cialis 5 mg scheda tecnica generic cialis at walmart cialis coupons printable discount cialis
یکشنبه 26 خرداد 1398 06:36 ب.ظ

Nicely put, Cheers!
cialis for daily use we like it safe cheap cialis cheap cialis cialis italia gratis chinese cialis 50 mg cialis uk acquisto online cialis generic cialis with dapoxetine order generic cialis online cialis 20mg
یکشنبه 26 خرداد 1398 03:55 ق.ظ

Nicely put, Thanks!
buy cialis cheap 10 mg cost of cialis per pill cialis alternative cialis venta a domicilio cialis price in bangalore order a sample of cialis cialis with 2 days delivery venta de cialis canada cialis kamagra levitra cialis arginine interactio
شنبه 25 خرداد 1398 02:13 ب.ظ

Thanks a lot! Valuable stuff!
how do cialis pills work cialis side effects prices on cialis 10 mg cialis online holland cialis official site cialis uk next day buy original cialis price cialis wal mart pharmacy import cialis rx cialis para comprar
پنجشنبه 23 خرداد 1398 07:10 ب.ظ

Thanks! I like it.
achat cialis en europe we choice cialis pfizer india comprar cialis 10 espa241a rezeptfrei cialis apotheke cialis 5mg prix online cialis price cialis best buy cialis online nz cialis kamagra levitra buy cialis sample pack
چهارشنبه 21 فروردین 1398 07:34 ب.ظ

Thank you. I enjoy this.
canadian prescriptions online serc 24 mg buy viagrow canadian medications list online pharmacies india online pharmacy canada drugstore online shopping canada medication drugstore online shopping drugs for sale online canadian pharmaceuticals stocks
جمعه 16 آذر 1397 02:30 ق.ظ

Fantastic advice. Cheers.
achat cialis en suisse buy brand cialis cheap tadalafil 20mg cialis vs viagra ou acheter du cialis pas cher we recommend cialis best buy we recommend cialis best buy buying cialis on internet bulk cialis prezzo cialis a buon mercato
پنجشنبه 15 آذر 1397 07:07 ق.ظ

You have made your position pretty effectively..
cialis price thailand we recommend cheapest cialis viagra cialis levitra cialis from canada purchase once a day cialis cialis online cialis purchasing cialis arginine interactio venta de cialis canada prices for cialis 50mg
چهارشنبه 14 آذر 1397 12:54 ق.ظ

Seriously many of valuable info!
generic cialis tadalafil we like it cialis soft gel cialis italia gratis venta cialis en espaa only best offers cialis use enter site very cheap cialis how does cialis work cialis y deporte cialis lowest price cialis 20mg prix en pharmacie
سه شنبه 13 آذر 1397 01:57 ب.ظ

Nicely put. Cheers.
cialis per paypa cialis 05 dose size of cialis wow cialis tadalafil 100mg cialis diario compra cialis uk next day cialis side effects dangers price cialis wal mart pharmacy only best offers cialis use cialis australia org
سه شنبه 13 آذر 1397 02:30 ق.ظ

Seriously all kinds of great advice.
precios cialis peru price cialis wal mart pharmacy generic cialis soft gels cialis australia org we recommend cialis best buy cialis per paypa chinese cialis 50 mg rezeptfrei cialis apotheke side effects of cialis ou acheter du cialis pas cher
دوشنبه 12 آذر 1397 02:11 ق.ظ

You said it perfectly..
purchasing cialis on the internet overnight cialis tadalafil cialis for sale in europa buy cialis cheap 10 mg purchasing cialis on the internet effetti del cialis cialis uk next day acheter cialis meilleur pri cialis online deutschland price cialis per pill
یکشنبه 11 آذر 1397 01:59 ق.ظ

Cheers! Ample facts.

cialis free trial generic cialis tadalafil sublingual cialis online generic cialis levitra no prescription cialis cheap if a woman takes a mans cialis cialis patentablauf in deutschland cialis online holland buy cialis online nz cialis professional from usa
جمعه 9 آذر 1397 02:12 ب.ظ

You have made the point!
canada discount drugs cialis achat cialis en itali cialis et insomni bulk cialis cialis canada on line cialis for sale in europa the best choice cialis woman cialis 20 mg best price cialis generisches kanada callus
جمعه 9 آذر 1397 02:25 ق.ظ

You actually revealed it wonderfully.
cialis prices in england cialis lowest price canada discount drugs cialis only now cialis 20 mg tarif cialis france when will generic cialis be available cialis canadian drugs opinioni cialis generico achat cialis en suisse cialis 100 mg 30 tablet
پنجشنبه 8 آذر 1397 02:55 ق.ظ

You said it adequately..
sublingual cialis online buy cialis online cheapest tarif cialis france fast cialis online tadalafil tablets price cialis wal mart pharmacy does cialis cause gout can i take cialis and ecstasy cialis daily buy generic cialis
چهارشنبه 7 آذر 1397 02:26 ب.ظ

Seriously many of wonderful advice.
tadalafil generic click here cialis daily uk only best offers cialis use buy cialis online legal enter site 20 mg cialis cost we like it safe cheap cialis cialis wir preise buy original cialis cialis kaufen wo buy cialis online cheapest
چهارشنبه 7 آذر 1397 02:28 ق.ظ

You actually suggested it really well.
cialis generic ou trouver cialis sur le net buy brand cialis cheap click here cialis daily uk cost of cialis per pill callus cialis tadalafil non 5 mg cialis generici only best offers 100mg cialis cialis herbs
پنجشنبه 19 مهر 1397 02:06 ب.ظ

You explained this well!
levitra 20 mg cheap 20mg levitra levitra 20mg buy generic levitra generic levitra vardenafil buy levitra online buy generic levitra levitra generic vardenafil 20mg
سه شنبه 10 مهر 1397 08:08 ق.ظ

Beneficial forum posts. With thanks.
cialis side effects click now cialis from canada prescription doctor cialis cialis daily dose generic generic cialis pro precios cialis peru warnings for cialis prezzo di cialis in bulgaria cialis usa cost deutschland cialis online
شنبه 7 مهر 1397 02:34 ق.ظ

Cheers! An abundance of advice!

bulk cialis sialis cialis reviews buy generic cialis generic cialis at the pharmacy generic cialis pill online cialis dosage are there generic cialis cialis herbs cialis 20 mg cut in half
شنبه 31 شهریور 1397 06:41 ب.ظ

You said it wonderfully.
drugstore online no 1 canadian pharcharmy online trust pharmacy canada prescriptions from canada without Canadian Pharmacy USA pharmacy canadian drugstore online pharmacies in usa canadian pharmacies that are legit online pharmacies tech school
چهارشنبه 28 شهریور 1397 08:09 ب.ظ

Thanks. Quite a lot of forum posts!

cialis canadian drugs cialis daily dose generic dosagem ideal cialis cialis generic tadalafil buy the best site cialis tablets cialis 5mg cialis per paypa cialis 5 mg scheda tecnica cialis italia gratis buy cialis online nz
سه شنبه 13 شهریور 1397 09:39 ب.ظ

Whoa a lot of amazing information.
global pharmacy canada canadian pharmacy uk delivery canada medications cheap north west pharmacies canada viagra canadiense online pharmacies mexico northwest pharmacies in canada canadian government approved pharmacies canadian prescriptions online canadian pharmacies that ship to us
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


نمایش نظرات 1 تا 30
درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

مدیر وبلاگ : ارش کاکاوند
مطالب اخیر
نویسندگان
صفحات جانبی
نظرسنجی
شما کدام یک از برنامه های زیر را برای طراحی وب انتخاب می کنید؟








جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :