Esempio di applicazione di ADO.NET

Di seguito viene riportata una semplice applicazione di ADO.NET che consente di restituire risultati da un'origine dati e di scrivere l'output nella console o nel prompt dei comandi. È possibile inserire la maggior parte del codice fornito in Accesso ai dati mediante ADO.NET in un modello tratto da questo esempio per ottenere un esempio funzionante di una particolare funzionalità di ADO.NET.

Nel codice di esempio riportato in questo argomento vengono mostrati gli spazi dei nomi tipicamente inclusi in un'applicazione ADO.NET. Vi sono esempi per il provider di dati .NET Framework per SQL Server (System.Data.SqlClient), il provider di dati .NET Framework per OLE DB (System.Data.OleDb), il provider di dati .NET Framework per ODBC (System.Data.Odbc) e il provider di dati .NET Framework per Oracle (System.Data.OracleClient). Se lo si desidera, in una stessa applicazione è possibile utilizzare anche tutti i provider di dati.

L'esempio seguente consente di connettersi al database Northwind di Microsoft SQL Server 2000 e di restituire un elenco di categorie mediante un DataReader (per ulteriori informazioni sul DataReader, vedere Recupero di dati mediante il DataReader).

Per compilare ed eseguire l'applicazione ADO.NET di esempio

  1. Utilizzando il Blocco note o un altro editor di testo, creare un file di testo vuoto denominato sample.vb per il codice di esempio Visual Basic o sample.cs per il codice di esempio C#.

  2. Copiare e incollare il codice di esempio Visual Basic o C# da questo argomento al file di testo vuoto. Salvare il file.

  3. Aprire il prompt dei comandi (fare clic su Start, quindi scegliere Esegui e digitare "command").

  4. Nel prompt dei comandi cambiare la directory e specificare la directory contenente il nuovo file di testo. Esempio:

    cd\SampleCode\ADONETSample
    
  5. Nel prompt dei comandi immettere uno dei comandi seguenti per compilare l'esempio (è probabile che il percorso del file creato sia diverso).

    • Per Visual Basic, utilizzare vbc.exe e immettere il comando seguente per fare riferimento alle librerie necessarie per l'esecuzione dell'applicazione di ADO.NET.

      vbc.exe sample.vb /r:System.dll /r:System.Data.dll /r:System.Data.OracleClient.dll /r:System.Xml.dll
      
    • Per C#, utilizzare csc.exe e immettere il comando seguente per fare riferimento alle librerie necessarie per l'esecuzione dell'applicazione di ADO.NET.

      csc.exe sample.cs /r:System.dll /r:System.Data.dll /r:System.Data.OracleClient.dll /r:System.Xml.dll
      
  6. Il compilatore creerà un file eseguibile denominato sample.exe. Per eseguire l'esempio compilato, immettere "sample.exe" al prompt dei comandi.

SqlClient

Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.VisualBasic

Public Class Sample

  Public Shared Sub Main() 
    Dim nwindConn As SqlConnection = New SqlConnection("Data Source=localhost;" & _
                                                       "Integrated Security=SSPI;Initial Catalog=northwind")

    Dim catCMD As SqlCommand = nwindConn.CreateCommand()
    catCMD.CommandText = "SELECT CategoryID, CategoryName FROM Categories"

    nwindConn.Open()

    Dim myReader As SqlDataReader = catCMD.ExecuteReader()

    Do While myReader.Read()
      Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", myReader.GetInt32(0), myReader.GetString(1))
    Loop

    myReader.Close()
    nwindConn.Close()
  End Sub
End Class
[C#]
using System;
using System.Data;
using System.Data.SqlClient;

class Sample
{
  public static void Main() 
  {
    SqlConnection nwindConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");

    SqlCommand catCMD = nwindConn.CreateCommand();
    catCMD.CommandText = "SELECT CategoryID, CategoryName FROM Categories";

    nwindConn.Open();

    SqlDataReader myReader = catCMD.ExecuteReader();

    while (myReader.Read())
    {
      Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0), myReader.GetString(1));
    }

    myReader.Close();
    nwindConn.Close();
  }
}

OleDb

Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic

Public Class Sample

  Public Shared Sub Main() 
    Dim nwindConn As OleDbConnection = New OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;" & _
                                                           "Integrated Security=SSPI;Initial Catalog=northwind")

    Dim catCMD As OleDbCommand = nwindConn.CreateCommand()
    catCMD.CommandText = "SELECT CategoryID, CategoryName FROM Categories"

    nwindConn.Open()

    Dim myReader As OleDbDataReader = catCMD.ExecuteReader()

    Do While myReader.Read()
      Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", myReader.GetInt32(0), myReader.GetString(1))
    Loop

    myReader.Close()
    nwindConn.Close()
  End Sub
End Class
[C#]
using System;
using System.Data;
using System.Data.OleDb;

class Sample
{
  public static void Main() 
  {
    OleDbConnection nwindConn = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");

    OleDbCommand catCMD = nwindConn.CreateCommand();
    catCMD.CommandText = "SELECT CategoryID, CategoryName FROM Categories";

    nwindConn.Open();

    OleDbDataReader myReader = catCMD.ExecuteReader();

    while (myReader.Read())
    {
      Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0), myReader.GetString(1));
    }

    myReader.Close();
    nwindConn.Close();
  }
}

Odbc

Imports System
Imports System.Data
Imports System.Data.Odbc
Imports Microsoft.VisualBasic

Public Class Sample

  Public Shared Sub Main() 
    Dim nwindConn As OdbcConnection = New OdbcConnection("Driver={SQL Server};Server=localhost;" & _
                                                         "Trusted_Connection=yes;Database=northwind")

    Dim catCMD As OdbcCommand = new OdbcCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn)

    nwindConn.Open()

    Dim myReader As OdbcDataReader = catCMD.ExecuteReader()

    Do While myReader.Read()
      Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", myReader.GetInt32(0), myReader.GetString(1))
    Loop

    myReader.Close()
    nwindConn.Close()
  End Sub
End Class
[C#]
using System;
using System.Data;
using System.Data.Odbc;

class Sample
{
  public static void Main() 
  {
    OdbcConnection nwindConn = new OdbcConnection("Driver={SQL Server};Server=localhost;" +
                                                  "Trusted_Connection=yes;Database=northwind");

    OdbcCommand catCMD = new OdbcCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn);

    nwindConn.Open();

    OdbcDataReader myReader = catCMD.ExecuteReader();

    while (myReader.Read())
    {
      Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0), myReader.GetString(1));
    }

    myReader.Close();
    nwindConn.Close();
  }
}

OracleClient

Imports System
Imports System.Data
Imports System.Data.OracleClient
Imports Microsoft.VisualBasic

Class Sample

  Public Shared Sub Main() 

    Dim oraConn As OracleConnection = New OracleConnection("Data Source=MyOracleServer;Integrated Security=yes;")

    Dim oraCMD As OracleCommand = New OracleCommand("SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER", oraConn)

    oraConn.Open()

    Dim myReader As OracleDataReader = oraCMD.ExecuteReader()

    Do While (myReader.Read())
      Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", myReader.GetInt32(0), myReader.GetString(1))
    Loop

    myReader.Close()
    oraConn.Close()
  End Sub
End Class
[C#]
using System;
using System.Data;
using System.Data.OracleClient;

class Sample
{
  public static void Main() 
  {
    OracleConnection oraConn = new OracleConnection("Data Source=MyOracleServer;Integrated Security=yes;");

    OracleCommand oraCMD = new OracleCommand("SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER", oraConn);

    oraConn.Open();

    OracleDataReader myReader = oraCMD.ExecuteReader();

    while (myReader.Read())
    {
      Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0), myReader.GetString(1));
    }

    myReader.Close();
    oraConn.Close();
  }
}

Vedere anche

Cenni preliminari su ADO.NET | Architettura di ADO.NET