ASP.NET - Połączenie z bazą danych

ADO.NET jest również częścią .NET Framework

Zadaniem ADO.NET jest obsługa dostępu do danych. Dzięki ADO.NET możesz operować na bazie danych.

Czym jest ADO.NET?

  • ADO.NET jest częścią .NET Framework
  • ADO.NET składa się z serii klas używanych do operacji na dostępie do danych
  • ADO.NET jest całkowicie oparty na XML
  • ADO.NET nie ma obiektu Recordset, co różni się od ADO

Tworzenie połączenia z bazą danych

Zamierzamy użyć używanej bazy danych Northwind.

Najpierw, zaimportuj przestrzeń nazw "System.Data.OleDb". Potrzebujemy tej przestrzeni nazw, aby móc operować na Microsoft Access oraz innych dostawcach OLE DB. Utworzymy połączenie z tą bazą danych w procedurze Page_Load. Utworzymy zmienną dbconn i przypiszemy do niej nową klasę OleDbConnection, która zawiera ciąg znaków łącząca string, wskazujący na OLE DB oraz lokalizację bazy danych. Następnie otworzymy to połączenie z bazą danych:

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

Komentarz:Ta ciąg znaków łącząca string musi być ciągłym bez przerw!

Tworzenie polecenia bazy danych

Aby określić rekordy, które mają być pobrane z bazy danych, utworzymy zmienną dbcomm i przypiszemy jej nowy obiekt OleDbCommand. Klasa OleDbCommand służy do wysyłania zapytań SQL do tabel bazy danych:

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

Tworzenie DataReader

Klasa OleDbDataReader służy do odczytywania strumienia rekordów z źródła danych. Używając metody ExecuteReader obiektu OleDbCommand, można utworzyć DataReader:

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

Przypinanie do kontrolki Repeater

Następnie, przypinamy ten DataReader do kontrolki 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>

Pokazuj ten przykład

Zamknij połączenie z bazą danych

Po zakończeniu dostępu do bazy danych, pamiętaj, aby zawsze zamknąć DataReader i połączenie z bazą danych:

dbread.Close()
dbconn.Close()