ASP.NET - Connessione al database

ADO.NET è anche una parte del framework .NET.

Il ruolo di ADO.NET è gestire l'accesso ai dati. Attraverso ADO.NET, è possibile operare sui database.

Cos'è ADO.NET?

  • ADO.NET è una parte del framework .NET
  • ADO.NET è composto da una serie di classi utilizzate per operare con l'accesso ai dati
  • ADO.NET è completamente basato su XML
  • ADO.NET non ha l'oggetto Recordset, diversamente da ADO

Creazione della connessione database

Intendiamo utilizzare il database Northwind che è stato utilizzato in precedenza.

Prima di tutto, importiamo lo spazio dei nomi "System.Data.OleDb". Abbiamo bisogno di questo spazio dei nomi per poter operare su Microsoft Access e altri provider di database OLE DB. Creeremo una connessione a questo database nel metodo Page_Load. Creeremo una variabile dbconn e assegniamo a questa variabile una nuova classe OleDbConnection, che contiene una stringa di connessione che può indicare OLE DB e la posizione del database. Poi apriamo questa connessione di database:

<%@ 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()
fine procedura
</script>

Nota:Questa stringa di connessione deve essere una stringa continua senza interruzioni di riga!

Creazione del comando database

Per specificare i record necessari da recuperare dal database, creeremo una variabile dbcomm e le assegniamo un nuovo OleDbCommand. Questa classe OleDbCommand viene utilizzata per eseguire query SQL su tabelle di database:

<%@ 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)
fine procedura
</script>

Creazione di DataReader

La classe OleDbDataReader viene utilizzata per leggere un flusso di record dal sorgente di dati. Facendo chiamare il metodo ExecuteReader dell'oggetto OleDbCommand, è possibile creare un 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()
fine procedura
</script>

Collegamento alla Repeater Control

Poi, mettiamo questo DataReader in una Repeater Control:

<%@ 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()
fine procedura
</script>
<html>
<body>
<form runat="server">
<asp:Repeater id="customers" runat="server">
<HeaderTemplate>
<table border="1" width="100%">
<tr>
<th>Nome dell'azienda</th>
<th>Nome del contatto</th>
<th>Indirizzo</th>
<th>Città</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>

Mostra questo esempio

Chiudi la connessione del database

Dopo aver avuto bisogno di accedere al database, ricorda sempre di chiudere il DataReader e la connessione del database:

dbread.Close()
dbconn.Close()