آموزش 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 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1