Semplice accesso a SQL Server in C#

.::Home::.

.::Introduzione::.

1.Panoramica

.::Presentazioni PPT::.

.::Link::.

.::DownLoad::.

 

A questo punto è possibile mettere insieme alcuni componenti illustrati nella precedente sezione per ottenere un semplicissimo programma in C# che accede e stampa su schermo il contenuto di una tabella memorizzata su di un server SQL.

Per il corretto funzionamento è necessario creare una tabella emp_test sull' SQL Server.

Il codice è:

create table emp_test 
            ( 
            ecode int primary key, 
            ename varchar(20), 
            ephone char(7) 
            ) 

Ovvero è necessaria la creazione di una tabella, con tre colonne: una chiave primaria ecode, codice numerico (int), un nome e un numero di telefono.

Non c'è alcun bisogno di creare una connessione ODBC per eseguire il programma.

Per semplicità i dati sono stati inseriti manualmente mediante SQL Server Enterprise Manager come mostrato nell immagini che seguono:

1) Si visualizza la tabella emp_test appena creata sul server SQL, nel database master (che in questo caso è in locale, rispetto al programma client in C#):

2) Si inseriscono i dati di esempio nella tabella e la si salva:

Ecco il codice d'esempio. I commenti spiegano le operazioni che sono svolte dal programma:

using System;
using System.Data.SqlClient;

public class Test
{
	public static void Main()
	{	
	Test t=new Test();
	t.Run();
	}
public void Run()
{
Console.WriteLine("Connessione");
// Per prima cosa si crea una connessione "conn" 
// mediante SqlConnection con i dati del server
// al quale si desidera accedere. Il nome del server è BARIBAL,
// il database che contiente la tabella è master
SqlConnection conn = new SqlConnection("Data Source=BARIBAL; Integrated Security=SSPI; Initial Catalog=master");
Console.WriteLine("Comando");
// Ora bisogna creare il comando cmd mediante SqlCommand.
// In questo caso un semplice SELECT * per prelevare
// tutte le colonne dalla tabella
SqlCommand  cmd = new SqlCommand("SELECT * FROM emp_test", conn);
	try
	{    	
	// La connessione era solo impostata, ora la si apre
	conn.Open();
	// Si utilizza la classe DataReader per leggere la
	// tabella un record per volta, e via via stamparne
	// il contenuto sulla console
	SqlDataReader myReader = cmd.ExecuteReader();
	Console.WriteLine("Code \t Emp. Name \t Emp. Phone");
	Console.WriteLine("-----------------------------------------");
	// Ad ogni record letto...
	// (perchè in questo caso legge l'intera riga)
	while (myReader.Read())
		{
		// ... estrae i valori e li stampa a schermo
		Console.WriteLine("{0}\t{1}\t\t{2}", myReader.GetInt32(0), myReader.GetString(1), myReader.GetString(2));
		}
	// Chiude il DataReader		
	myReader.Close();
	// Chiude la Connessione
	conn.Close();
	}
	catch(Exception e)
	{
	Console.WriteLine("Exception Occured -->> {0}",e);
	}    	
}
}

ATTENZIONE!!!!

Questo programma è da eseguire in locale, e con i permessi di amministratore per Windows e SQL Server, come si vede dalla stringa di connessione che non comprende nessun dato di login (UserID e Password).
Questa è una situazione molto particolare che può rendere il programma inutilizzabile in un uso reale e meno "da laboratorio". Tuttavia l'aspetto molto compatto di questa soluzione è stata preferita per la pubblicazione. E' possibile creare a parte la stringa di connessione da passare a SqlConnection. E' possibile ad esempio sostituire la dichiarazione di SqlConnection presente in questo e negli altri esempi di connessione a SQL Server con il seguente codice che prende i parametri fondamentali direttamente da tastiera per costruire la stringa di connessione:

Console.WriteLine("Inserire: UserId, Password, Nome del database, Nome del server");
//Crea la stringa di connessione con i valori via via letti da tastiera
string strConnection="user id="+Console.ReadLine()+";password="+Console.ReadLine()+";";
strConnection+="database="+Console.ReadLine()+";server="+Console.ReadLine();
//Per un controllo scrive a schermo la stinga di connessione
Console.WriteLine(strConnection);
//Istanzia SqlConnection
SqlConnection conn = new SqlConnection(strConnection);

 

3) Ora non resta che compilare ed eseguire il programma:

Fonti:

http://www.csharphelp.com/archives/archive103.html

.::^top^::.

(2002) A cura di Carlo Becchi