HeaderBlog
LaConoscenza.NET
Introduzione ad ADO.NET
Visualizza l'intero eBook ADO.NET e Sql Server  

ADO.NET è una libreria di classi il cui fine è di consentire una interazione con Database, file testo, file XML, ecc. 

 

Data Provider

ADO.NET consente ad un'applicazione web di scambiare informazioni con diversi tipi di fonti dati o Database. Tuttavia, non vi è un insieme unico di classi, per riferirsi ai diversi database, ma per ogni tipo di database è stato implementato un diverso Data Provider, cioè librerie di classi, che definiscono un modo comune per interagire con specifiche sorgenti dati o protocolli. I pricipali provider sono i seguenti:

 

Provider Name

API prefix

Data Source Description

ODBC Data Provider

Odbc

Sorgenti dati con interfaccia ODBC

OleDb Data Provider

OleDb

Sorgenti dati che espone interfaccie OleDb (Access o Excel)

Oracle Data Provider

Oracle

Per database Oracle

SQL Data Provider

Sql

Per interfaccia con Microsoft SQL Server.

 

Namespace

Per utilizzare gli oggetti ADO.NET associati al database Sql-Server occorre dichiarare i seguenti namespace:

using System;

using System.Data;

using System.Data.SqlClient;

 

ADO.NET Objects
ADO.NET comprende diversi oggetti che possono essere utilizzati per interfacciarsi con un  database SQL Server. I più importanti sono:
  • SqlConnection Object
  • SqlCommand Object
  • SqlParameter Object
  • SqlDataReader Object
  • SqlTransaction Object
  • DataSet Object Sql
  • DataAdapter Object
Data Inserimento Post 05/01/2009 9.34.36  |  Social Bookmark
  • Digg
  • del.icio.us
  • Google
  • Yahoo
  • Technorati
  • Facebook
  • OKNOtizie
  • Email
 
Sql Connection Class
Visualizza l'intero eBook ADO.NET e Sql Server  

Per interrogare un base dati è necessario disporre di una connessione al database. Il fine è di indicare Server, Nome del database, nome utente, password ed altri parametri necessari per il collegamento al database. L’oggetto connessione viene utilizzato dai comandi per specificare su quale database occorre eseguire i comandi.

Una connection reference list è disponibile sul sito:  http://www.connectionstrings.com/

Le Properties della Sql Connection classa sono:
ConnectionString    Connection string al database
ConnectionTimeout Timeout in secondi della connessione
Database                Nome del database
DataSource             Nome del Server
PacketSize             Dimensione dei packets usati per comunicare con il Server
ServerVersion          Version of SQL
State                      Stato della connessione
WorkstationId          Identificatore NetBIOS della machine che ospita il Web form

I Metodi della Sql Connection classa sono:
BeginTransaction()  Pone la connessione in una transazione
ChangeDatabase()  Consente di associare ad una connessione un differente database
Close()                   Chiude la connessione
CreateCommand()   Ritorna un nuovo command object
Open()                    Apre una connessione al database

Connection String
Il codice che segue è un esempio di connection string per il database SqlEspress 2005

SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=.\SQLExpress;Integrated security=True; 
         User Instance=True;AttachDBFilename=|DataDirectory|Idea05.mdf”;

Il significato dei diversi parametri è il seguente:

  • Data Source è il machine name del computer su cui è running sql server
  • Integrated security indica che occorre usare le attuali credenziali degli utenti di windows (username e password) per accedere a sql server. I possibili valori sono true, false e sspi (indica connessione sicura).
  • User Instance, durante la connessione crea una nuova local SQL Server Express instance. Funziona solo quando si usa l’autenticazione di Windows. Lo scopo è di poter creare una full rights SQL Server instance per un utente con limitati diritti amministrativi sul computer.
  • AttachDBFilename, Path completo del nome del principale file del database

Connection Timeout
E’ una property read-only che contiene il timeout in secondi della connessione. Il valore di default è 30 sec. Per modificare questo parametro occorre indicare il valore nella connection string.

SqlConnection conn = new SqlConnection( ConnString );

msg.Text = conn.ConnectionTimeout;

 

Database

E’ una property read-only che contiene il nome del database. Per cambiare il valore occorre usare il metodo ChangeDatabase() oppure modificare la connection string.

SqlConnection conn = new SqlConnection( ConnString );

msg.Text = conn.Database;

State

La property State consente di ottenere lo stato della connessione. Sono possibili i seguenti valori: Broken, Closed, Connecting, Executing, Fetching, and Open. Questi valori sono definite nel namespace System.Data.ConnectionState

SqlConnection conn = new SqlConnection( ConnString );

msg.Text = conn.State.ToString();

Transaction

Consente di eseguire diverse istruzioni SQL in modo consistente. Ad esempio, a volte occorre aggiornare diverse tabelle in un database (con Insert, update, ecc.) in modo consistente, nel senso che se si verifica un errore occorre annullare tutte le operazioni.

 

SqlConnection conn = new SqlConnection( ConnString );

Conn.Open();

SqlTransaction tx = conn.BeginTransaction();

  //  Esegue le diverse operazioni …

tx.Commit();

conn.Close();

ChangeDatabase

Consente di cambiare database senza dover creare una nuova connessione.

 

SqlConnection conn = new SqlConnection( ConnString );

conn.Open();

 

conn.ChangeDatabase("dbNew");

conn.Close()

 

CreateCommand

Ritorna una nuova instanza di un oggetto SqlCommand

 

SqlConnection conn = new SqlConnection( ConnString );

conn.Open();

 

SqlCommand cmd = conn.CreateCommand();

cmd.CommandText = "DELETE FROM Prodotti";

 

Data Inserimento Post 05/01/2009 9.34.36  |  Social Bookmark
  • Digg
  • del.icio.us
  • Google
  • Yahoo
  • Technorati
  • Facebook
  • OKNOtizie
  • Email
 
Sql Command Class
Visualizza l'intero eBook ADO.NET e Sql Server  

Comunicare con un database significa indicare le operazioni che si desiderano fare, mediante la classe SqlCommand. Questa classe viene usata per eseguire operazioni su un database o per ottenere informazioni. In altri termini, si utilizza un Object Command per inviare istruzioni SQL alla base di dati. Un oggetto comando utilizza l'oggetto connessione, per conoscere con quale database comunicare.
È possibile utilizzare SqlCommand, per eseguire un comando direttamente oppure mediante un riferimento ad un oggetto SqlDataAdapter, in cui sono memorizzati una serie di comandi da eseguire su un insieme di dati.

Properties
CommandText       Contiene il testo di un commando sql
CommandTimeout  Timeout in secondi per l