آموزش ASP.Net به زبان ساده > آموزش مدل فرم های وب ASP.Net Web
Forms
درس شانزدهم : آموزش اتصال به پایگاه داده در Database Connection ) ASP.Net )
مقدمه و معرفی کنترل ADO.Net :
یکی از مباحث اصلی و مهم در طراحی وب دینامیک ASP.Net ، امکان اتصال و تعامل با پایگاه
داده می باشد . در چهارچوب کاری NET. ، این وظیفه بر عهده ADO.Net قرار داده شده است
.
ADO.Net بخشی از چهارچوب کاری NET. و ASP.Net است که برای مدیریت و اتصال به منابع
داده ای و کار با آنها به کار می رود . به طور خلاصه ، ADO.Net را در موارد زیر می
توان تعریف کرد :
- ADO.Net بخشی از چهارچوب کاری NET. ، برای کار با منابع داده ای است .
- ADO.Net شامل مجموعه ای از اشیا و کلاس ها برای مدیریت داده می شود .
- ADO.Net بر مبنای زبان XML
پایه گذاری شده است .
- ADO.Net بر خلاف ADO کلاسیک ، دارای شی Recordset نیست .
آموزش اتصال به پایگاه داده در ASP.Net :
در اینجا قصد داریم تا با ارایه یک مثال ، نحوه اتصال به پایگاه داده در ADO.Net را
آموزش دهیم . هدف ما در این مثال ، متصل شدن به پایگاه داده Northwind می باشد .
در مرحله اول ، بایستی namespace با مقدار " System.Data.OleDb " را در ابتدای صفحه
وارد ( Import ) کنیم ، زیرا برای کار با پایگاه داده های ACCESS و سایر فراهم کننده
های داده OLE DB به این namespace نیاز داریم .
در مثال زیر کد اتصال به پایگاه داده را در رویداد لود اولیه صفحه ( Page_Load ) قرار
داده ایم ، تا به محض باز شدن صفحه ، اجرا شود .
|
کد
|
<%@ Import Namespace=" System.Data.OleDb " %>
<script runat="server">
sub Page_Load
dim dbconn
dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0 ; data source=" &
server.mappath("northwind.mdb"))
dbconn.Open()
end sub
</script>
|
توضیح کد مثال :
در مثال فوق ، یک متغیر جدید از کلاس OleDbConnection ( که برای اتصال به منابع مختلف
داده ای به کار می رود ) به نام dbconn را تعریف کرده ایم . همچنین در دستور تعریف
آن ، فراهم کننده ارتباط ( Connection Provider ) و مکان قرار گیری پایگاه داده بر
روی سرور را تعیین نموده ایم .
به این بخش از کد که به رنگ قرمز مشخص شده ، یک رشته ارتباطی یا Connection String
می گویند . سپس به وسیله یک دستور ( )Open ، ارتباط با پایگاه داده را ایجاد و بر قرار
نموده ایم . این ارتباط تا زمانی که با دستور ( )Close بسته نشده یا مدت زمان معین
برای قطع ارتباط سپری نشود ، باز خواهد بود .
نحوه نوشتن یک دستور SQL برای کار با پایگاه داده ( Database Command ) :
پس از اتصال به پایگاه داده ، مرحله بعدی تعیین رکورد یا رکوردهایی است که می خواهیم
از آن استخراج نموده و نمایش دهیم . برای این منظور از کلاس جدید OleDbCommand ( کلاسی
که برای تعریف دستورات SQL
به کار می رود ) ، به نام dbconn را تعریف می کنیم .
در مثال زیر ،
یک دستور انتخاب رکوردها ( Select ) به زبان SQL را در متغیری به نام sql تعریف
کرده ایم . این دستور اطلاعات تمامی فیلدها ی رکوردهای جدول customers را انتخاب و
استخراج می کند . سپس این دستور را به همراه رشته ارتباطی به پایگاه داده ( dbconn
) که در مرحله قبل آن تعریف شده را به متغیر dbcomm ارسال کرده ایم ، به صورت کد زیر
:
|
کد
|
<%@ Import Namespace=" System.Data.OleDb " %>
<script runat="server">
sub Page_Load
dim
dbconn ,sql , dbcomm
dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0
; data source=" & server.mappath("northwind.mdb"))
dbconn.Open()
sql="SELECT
* FROM customers"
dbcomm=New OleDbCommand(sql,dbconn)
end sub
</script>
|
آموزش ایجاد یک ظرف حمل اطلاعات ( DataRedear ) :
پس از اینکه اتصال به پایگاه داده را بر قرار نموده و دستور لازم برای خواندن رکوردها
و اطلاعات لازم از جدول بانک اطلاعاتی را تعیین کردیم ، نیاز به یک ظرف یا جریان داریم
تا اطلاعات را بین اشیا و کنترل های موجود در صفحه انتقال دهد .
برای این منظور یک متغیر جدید از کلاس OleDbDataReader ( کلاسی که برای ساخت DataRedear
ها استفاده می شود ) به نام dbread را ایجاد کرده ایم . این متغیر توسط متد ( )ExecuteReader
شی OleDbCommand ایجاد می شود . همانند کد زیر :
|
کد
|
<%@ Import Namespace=" System.Data.OleDb " %>
<script runat="server">
sub Page_Load
dim dbconn
,sql , dbcomm , dbread
dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0
; data source=" & server.mappath("northwind.mdb"))
dbconn.Open()
sql="SELECT * FROM customers"
dbcomm=New OleDbCommand(sql,dbconn)
dbcomm=New OleDbCommand(sql,dbconn)
dbread=dbcomm.ExecuteReader(
)
end sub
</script>
|
آموزش نحوه اتصال DataReader به یک کنترل نمایش دهنده اطلاعات :
در مرحله آخر ، نیاز داریم تا شی DataReader ای کخ ایجاد کردیم و حاوی اطلاعات استخراج
شده از پایگاه داده است را به یک کنترل سرور ASP.Net متصل کنیم ، تا اطلاعات را به
صورت ساختار یافته نمایش دهد .
کد نهایی مثال : در مثال زیر شی DataReader را به یک کنترل Repeater متصل کرده ایم
:
توضیح برخی نکات مثال :
- همانطور که در یخش های قبل توضیح دادیم ، توسط اشیای داده ای تعریف شده ، به
پایگاه داده northwind متصل شده و اطلاعات تمامی رکوردهای آن را که شامل 4 فیلد Companyname ، Contactname ، Address و City می
باشد را استخراج و در یک شی DataReader به نام dbread ریخته ایم .
- سپس شی dbread را توسط دستور customers.DataSource=dbread
به عنوان منبع داده کنترل RePeater با id برابر با
id="customers" قرار داده و توسط متد ( )DataBind
، آن دو را به هم متصل کرده ایم .
- پس از اتمام کار نیز توسط متد ( ) Close ، هر دو شی و ازتباط dbread و dbconn را بسته
و حافظه سیستم را از وجود آنها خالی نموده ایم . توجه
داشته باشید که برای حذف امنیت داده های خود ، حتما بایستی رشته ارتباطی را پس از پایان
کار ، ببندید .
|
کد
|
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
sub Page_Load
dim dbconn,sql,dbcomm,dbread
dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;
data source=" & server.mappath("northwind.mdb"))
dbconn.Open()
sql="SELECT * FROM customers"
dbcomm=New OleDbCommand(sql,dbconn)
dbread=dbcomm.ExecuteReader()
customers.DataSource=dbread
customers.DataBind()
dbread.Close()
dbconn.Close()
end sub
</script>
<html>
<body>
<form id="Form1" runat="server">
<asp:Repeater
id="customers" runat="server">
<HeaderTemplate>
<table
border="1" width="100%">
<tr>
<th>Companyname</th>
<th>Contactname</th>
<th>Address</th>
<th>City</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Container.DataItem("companyname")%></td>
<td><%#Container.DataItem("contactname")%></td>
<td><%#Container.DataItem("address")%></td>
<td><%#Container.DataItem("city")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</form>
</body>
</html>
|
|
خروجی
|
مشاهده خروجی مثال
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1
حمایت نمایید :