ASP.NET - การเชื่อมต่อฐานข้อมูล

ADO.NET ยังเป็นส่วนประกอบของ .NET Framework

ภารกิจของ ADO.NET คือการจัดการการเข้าถึงข้อมูล。ผ่าน ADO.NET คุณสามารถปฎิบัติงานกับฐานข้อมูลได้

อะไรคือ ADO.NET?

  • ADO.NET คือส่วนประกอบของ .NET Framework
  • ADO.NET ประกอบด้วยตัวแปรที่ใช้ในการจัดการการเข้าถึงข้อมูล
  • ADO.NET ทั้งหมดขึ้นอยู่กับ XML
  • ADO.NET ไม่มีวัตถุ Recordset นี้ต่างจาก ADO

สร้างการเชื่อมต่อฐานข้อมูล

เรามีแผนที่จะใช้ฐานข้อมูล Northwind ที่เคยใช้แล้ว

เราจะนำเข้าชื่อช่วง "System.Data.OleDb" ญาณะก่อน

<%@ 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>

หมายเหตุ:ตัวพิมพ์สายนี้ต้องเป็นตัวพิมพ์สายที่ไม่มีการหยุดพัก!

สร้างคำสั่งฐานข้อมูล

เพื่อกำหนดบันทึกที่ต้องการดึงมาจากฐานข้อมูล เราจะสร้างตัวแปร dbcomm และกำหนดค่าใหม่ที่เป็น OleDbCommand โดยคลาส OleDbCommand นี้ใช้เพื่อส่งคำสั่ง SQL ต่อตารางฐานข้อมูล:

<%@ 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>

สร้าง DataReader

OleDbDataReader คลาสที่ใช้เพื่ออ่านสตรีมของบันทึกจากแหล่งข้อมูล

<%@ 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()
end sub
</script>

ผูกไปยังควบคุม Repeater

จากนั้น เราจะผูก DataReader ไปยังควบคุม Repeater:

<%@ 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 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>

แสดงตัวอย่างนี้

ปิดเชื่อมต่อฐานข้อมูล

หลังจากที่เชื่อมต่อฐานข้อมูลที่ไม่จำเป็นต้องใช้ จงจดจำที่จะปิด DataReader และเชื่อมต่อฐานข้อมูลเสมอ

dbread.Close()
dbconn.Close()