نوشته‌ها / ASP.NET · شخصی · برنامه‌نویسی

ASP.NET و پایگاه داده - قسمت دوم

این نوشته در تاریخ ۱۳۸۱/۷/۸ در سایت IranASP.NET1 قرار گرفته است.
قسمت اول2

در این بخش شما به دانسته های بخش اول نیاز دارید.

شئ بعدی که مورد بحث قرار می گیرد کلاس Data Adapter است. OleDBDataAdapter اطلاعات را می گیرد و یک ارتباط منطقی بین داده ها و کلاس Dataset ایجاد میکند. بطور کلی میتوان گفت Data Adapter در نظر اول معادل Data Command می باشد.
روش استفاده از Data Adapter ها بطور معمول بصورت زیر تعریف می شود:
Dim objAdapter As New OleDBDataAdapter("Select * From Users",objConn)
ملاحظه می کنید که شئ Adapter از دو پارامتر- یکی رشته دستورات SQL و دیگری رشته ارتباطی - برای فرستادن دستورات به پایگاه داده استفاده می کند.
بطور معمول DataAdapter برای پرکردن DataSetها و بروز کردن پایگاه بوسیله یک DataSet و اجرا کردن دستورات بکار می رود. اکنون نمای کلی از کاربرد فوق را در زیر می بینید:
Dim ds As DataSet = New DataSet() objAdapter.Fill(ds,"Users")

متد Fill جهت اجرای دستور تنظیم شده در Data Adapter بکار می رود. بعبارت دیگر اطلاعات واکشی شده از پایگاه داده در یک جدول با نامی که ما تعیین می کنیم (Users) ذخیره می شود.

نکته ضروری اینست که تکنیک Mappings در اکثر مواقع کارساز است. Mappings عبارت است از ساختن یک نام مستعار (Alias) برای نام جداول در یک Dataset. این aliasها هیچگونه تاثیری در منبع داده ندارد و وقتی که بوسیله DataAdapter فرستاده می شود بصورت خودکار بنام پیش فرض تبدیل میشود. این تکنیک باعث خوانایی کد و راهنمایی برنامه نویس در ارجاع های بعدی وتشخیص جداول فراخوانی شده میشود.

objAdapter.TableMappings.Add("adbtable","Users") with objAdapter.tableMapping(0).ColumnMappings .Add("PID","ID") .Add("LAstName","Lname") .Add("StreetAddress","Addy") End with objAdapter.Fill(ds)
در تکنیک فوق بجای استفاده از عبارت ds.Tables("adbtable") میتوانیم Ds.Tables("Users") را بکار ببریم. در بخشهای آینده دیگر فواید استفاده از Mappings آمده است. همچنین کلاس CommandBuilder برای بهنگام کردن یک بانک که بوسیله Dataset صورت گرفته یک شیوه صحیح بشمار میرود:
Dim cmdBLD As New OleDBCommandBuilder(objAdapter)
که در عبارت فوق شئ objAdapter بعنوان پارامتر به دستور CommandBuilder فرستاده شده و سپس بوسیله متد Update منبع داده بهنگام می شود: objAdapter.Update(ds,"Users")

در ادامه، مثال زیر بعنوان جمع بندی مطالب قبلی آمده است. توجه داشته باشید در مثال زیر نتیجه ای بعنوان خروجی در مرورگر نمایش داده نمی شود و فقط از منبع داده ای اطلاعات خوانده شده و یک شئ Dataset پر می شود:

<%@ Import NameSpace="System.data" %> <%@ Import NameSpace="System.Data.OleDB" %> <Script Language="VB" Runat="Server"> Sub Page_Load( Sender As Object, E As EventArgs) Dim objConn As New OleDBConnection( _ "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=e:\db\users.mdb") objConn.Open() Dim ds As DataSet= New DataSet Dim objAdapter As New OleDBDataAdapter("Select * From Users", objConn) Dim objcmdBLD As New OleDBCommandBuilder(objAdapter) Obj.Adapter.Fill(ds,"Users") End Sub </Script>