Il blog di Emanuele Mattei in ambito Database

Programmazione database, ado.net e database mobile

Blog

Siti

Siti Sql Server

Siti vari

Tools

ottobre 2008 - Posts

Nuovo Blog Sql Stuff

Dalla comunity Microsoft, si trova un nuovo blog, per coloro che utilizzano il database Sql Server.

Dal seguente sito http://blogs.msdn.com/sqlstuff/default.aspx si trovano post riguardante le varie versioni del database server di Microsoft.

 

Posted: ott 25 2008, 12.46 by EmanueleM | with no comments
Filed under:
Come visualizzare ed inserire le immagini in un database Microsoft Access tramite Ado.Net

Riporto l'articolo scritto per il sito iprogrammatori http://www.iprogrammatori.it/articoli/programmazione/art_adonet-inserire-e-salvare-immagine-in-un_131.aspx riguardante la possibilità di inserire e visulizzare le immagini in un database Microsoft Access.

In questo articolo, vedremo come salvare delle immagini (formato jpeg e gif) in un campo di una tabella di un databse Microsoft Access. Il campo è di tipo oggetto ole. Con qualche modifica al codice, si può utilizzare anche per un database sql server con campo di tipo blob. A fine articolo trovate il sorgente di esempio utilizzato in questo articolo, per il lnguaggio Visual Basic Net e C#

Ora vediamo, come inserire e visualizzare le immagini in un database, salvando lo stream dati dell'immagine in questo campo.

Creazione del database.

Si crea un nuovo database Microsoft Access 2003, con una tabella, una colonna di tipo contatore e l'altra di tipo oggetto ole, salvate la tabella ed il database.

Creazione del progetto.

Si crea un nuovo progetto di tipo windows application,  nella finestra principale, inseriamo tre pulsanti, una casella di testo, una label un controllo picturebox, due radiobutton ed un controllo groupbox.  Il tutto come mostrato in figura 1.

 

Figura 1

I pulsanti, avranno il compito, di selezionare l'immagine, di salvare l'immagine nel database e di visualizzarla.

Stesura del codice.

Ora passiamo al codice. Utilizziamo lo spazio dei nomi, oledb per la gestione dei dati per il database Microsoft Access e system.io per la gestione dei file.

Di seguito si riporta tale dichiarazioni.

VB.Net

Imports System.Data.OleDb

Imports System.IO

C#

using System.IO;

using System.Data.OleDb;

Il pulsante per la ricerca delle immagini, chiamato btnImmagine, avrà il compito di instanziare un oggetto di tipo openfiledialog, per la ricerca delle immagini, ed impostare la proprietà text della casella di testo (txtimmagine) con il percorso e nome del file immagine.

Di seguito si riporta il frammento di codice di tali operazioni.

VB.Net

 Private Sub btnImmagine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImmagine.Click

Dim dlgImmagine As New OpenFileDialog()

dlgImmagine.Title = "Seleziona un immagine da importare"

 

dlgImmagine.Multiselect = False

 

dlgImmagine.Filter = "Formato JPEG(*.jpg)|*.jpg|Formato GIF (*.gif)|*.gif"

dlgImmagine.FilterIndex = 2

dlgImmagine.FileName = ""

dlgImmagine.ShowDialog()

txtimmagine.Text = dlgImmagine.FileName

End Sub

C#

 private void btnImmagine_Click(object sender, EventArgs e)

{

OpenFileDialog dlgImmagine = new OpenFileDialog();

dlgImmagine.Title = "Seleziona un immagine da importare";

dlgImmagine.Multiselect = false;dlgImmagine.Filter = "Formato JPEG(*.jpg)|*.jpg|Formato GIF (*.gif)|*.gif";

dlgImmagine.FilterIndex = 2;

dlgImmagine.FileName =
"";

dlgImmagine.ShowDialog();

txtimmagine.Text = dlgImmagine.FileName;

}

Il pulsante per il salvataggio dell'immagine (chiamato BtnSalva) avrà il compito di salvare in formato stream dati l'immagine nel database, si utilizzerà la classe filestream, per la gestione del file, mentre la classe dataset, oledbadapter oledbcommandbuilder per la gestione dei dati, in particolare per il salvataggio dei dati. La variabile di tipo array byte, conterrà le informazioni dell'immagine selezionata.

Di seguito si riporta il codice delle suddette dichiarazioni.

VB.Net

 Private Sub btnSalva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalva.Click

If txtimmagine.Text Is String.Empty Then

Exit Sub

End If

'Creo lo stream dati byte, della immagine

Dim fs As FileStream = New FileStream(txtimmagine.Text, FileMode.OpenOrCreate, FileAccess.Read)

Dim ImgData(fs.Length) As Byte

fs.Read(ImgData, 0, System.Convert.ToInt32(fs.Length))

fs.Close()

'Mi connetto al db

 

Dim sql As String = "SELECT * FROM dati"

 

Dim condati As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=C:\dbimmagine.mdb")

Try

If condati.State <> ConnectionState.Open Then

condati.Open()

End If

 

'oggetti per il salvataggio dei dati

Dim adapterDati As OleDbDataAdapter = New OleDbDataAdapter(sql, condati)

Dim cmdBuilder As OleDbCommandBuilder = New OleDbCommandBuilder(adapterDati)Dim dtsDati As New DataSet()

adapterDati.MissingSchemaAction = MissingSchemaAction.AddWithKey

'Carico il dataset

adapterDati.Fill(dtsDati, "Dati")

'Creo un datarow che mi rappresenta la nuova riga

 

Dim dtrRiga As DataRow = dtsDati.Tables("Dati").NewRow()

dtrRiga("immagine") = ImgData

' aggiungo la riga al dataset

 

dtsDati.Tables("Dati").Rows.Add(dtrRiga)

'Salvo i dati modificati

adapterDati.Update(dtsDati, "Dati")

MessageBox.Show("Immagine salvata")

Catch ex As Exception

MessageBox.Show("Errore: " & ex.Message)

Finally

'Chiudo la connessione

If Not condati Is Nothing Then

If condati.State = ConnectionState.Open Then

condati.Close()

End If

condati.Dispose()

End If

End Try

End Sub

C#

 private void btnSalva_Click(object sender, EventArgs e)

{

if (txtimmagine.Text == string.Empty)

{

return;

}

//Creo lo stream dati byte, della immagine

 

FileStream fs = new FileStream(txtimmagine.Text, FileMode.OpenOrCreate, FileAccess.Read);

Byte[] ImgData = new Byte[fs.Length];

fs.Read(ImgData, 0, System.Convert.ToInt32(fs.Length));

fs.Close();

//Mi connetto al db

 

string sql = "SELECT * FROM dati";

OleDbConnection condati = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " + "Data Source=C:\\dbimmagine.mdb");

try

{

if (condati.State != ConnectionState.Open)

{

condati.Open();

}

// oggetti per il salvataggio dei dati

 

OleDbDataAdapter adapterDati = new OleDbDataAdapter(sql, condati);

OleDbCommandBuilder cmdBuilder = new OleDbCommandBuilder(adapterDati);

DataSet dtsDati = new DataSet();

adapterDati.MissingSchemaAction = MissingSchemaAction.AddWithKey;

//Carico il dataset

 

adapterDati.Fill(dtsDati, "Dati");

//Creo un datarow che mi rappresenta la nuova riga

DataRow dtrRiga = dtsDati.Tables["Dati"].NewRow();

dtrRiga["immagine"] = ImgData;

// aggiungo la riga al dataset

dtsDati.Tables["Dati"].Rows.Add(dtrRiga);

//Salvo i dati modificati

 

adapterDati.Update(dtsDati, "Dati");MessageBox.Show("Immagine salvata");

}

catch (Exception ex)

{

MessageBox.Show("Errore: " + ex.Message);

}

finally

{

//Chiudo la connessione

 

if (condati == null)

{

if (condati.State == ConnectionState.Open)

{

condati.Close();

}

condati.Dispose();

}

 

}

}

Il pulsante per la visualizzazione dell'immagine (denominato btnVisualizza) avrà il compito di visualizzare l'immagine in un controllo picturebox, se viene scelta la radiobutton con il valore "si", ossia per il salvataggio fisico dell'immagine, verrà creato un file immagine sul computer, altrimenti, se l'opzione selezionata ha il valore no, non verrà creato nessun file immagine.

Utilizzeremo le classi filestream e binarywriter per la generazione del file, mentre le classi oledbcommand, oledbdatareader per la lettura dei dati.

Di seguito si riporta il codice per la visualizzazione dell'immagine.

VB.Net

Private Sub btnVisualizza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVisualizza.Click

Dim sql As String = "SELECT * FROM dati"

 

Dim conDati As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=C:\dbimmagine.mdb")

Try

If conDati.State <> ConnectionState.Open Then

conDati.Open()

End If

 

Dim cmd As OleDbCommand = New OleDbCommand(sql, conDati)

Dim fs As FileStream

Dim binaryScrivi As BinaryWriter

Dim Dimensionebuffer As Integer = 300000

Dim outbyte(300000 - 1) As Byte

 

Dim reader As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.SequentialAccess)

'leggo il primo record

reader.Read()

'senza salvataggio della immagine

 

If rdbSi.Checked = False Then

 

Dim arrayStreamDati() As Byte = reader.Item("immagine")

If arrayStreamDati.Length > 0 Then

'Carico in uno memoryStream l'array strem dati

Dim Stream As MemoryStream = New MemoryStream(arrayStreamDati, True)

Stream.Write(arrayStreamDati, 0, arrayStreamDati.Length)

'Creo un oggetto bitmap contente l'immagine

Dim immagine As Bitmap = New Bitmap(Stream)

'carico nella picture box

PictureBox1.Image = immagine

PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage

'Chiudo lo stremadati

Stream.Close()

End If

Else

'Salvo l'immagine sul computer

fs = New FileStream("C:\pippo.bmp", FileMode.OpenOrCreate, FileAccess.Write)

binaryScrivi = New BinaryWriter(fs)

reader.GetBytes(1, 0, outbyte, 0, Dimensionebuffer)

binaryScrivi.Write(outbyte)

binaryScrivi.Flush()

'Chiudo gli oggetti

binaryScrivi.Close()

fs.Close()

reader.Close()

'Visualizzo l'immagine

 

Dim immagine As Image = Nothing

 

immagine = Image.FromFile("C:\pippo.bmp")

PictureBox1.Image = immagine

PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage

End If

 

Catch ex As Exception

MessageBox.Show("Errore: " & ex.Message)

Finally

 

'chiusura connessione

 

If Not conDati Is Nothing Then

 

If conDati.State = ConnectionState.Open Then

conDati.Close()

End If

conDati.Dispose()

End If

 

End Try

 

End Sub

 

C#

 private void btnVisualizza_Click(object sender, EventArgs e)

{

string sql = "SELECT * FROM dati";

OleDbConnection conDati = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " + "Data Source=C:\\dbimmagine.mdb");

try

{

if (conDati.State != ConnectionState.Open)

{

conDati.Open();

}

OleDbCommand cmd = new OleDbCommand(sql, conDati);

FileStream fs;

BinaryWriter binaryScrivi;

Int32 Dimensionebuffer = 300000;

Byte[] outbyte = new Byte[300000 - 1];

OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess);

//leggo il primo record

reader.Read();

//senza salvataggio della immagine

if (rdbSi.Checked == false)

{

Byte[] arrayStreamDati = (Byte[])reader["immagine"];// Item["immagine"];

if (arrayStreamDati.Length > 0)

{

//Carico in uno memoryStream l'array strem dati

MemoryStream Stream = new MemoryStream(arrayStreamDati, true);

Stream.Write(arrayStreamDati, 0, arrayStreamDati.Length);

//Creo un oggetto bitmap contente l'immagine

Bitmap immagine = new Bitmap(Stream);

//carico nella picture box

PictureBox1.Image = immagine;

PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

//Chiudo lo stremadati

Stream.Close();

}

}

else

{

//Salvo l'immagine sul computer

fs = new FileStream("C:\\pippo.bmp", FileMode.OpenOrCreate, FileAccess.Write);

binaryScrivi = new BinaryWriter(fs);

reader.GetBytes(1, 0, outbyte, 0, Dimensionebuffer);

binaryScrivi.Write(outbyte);

binaryScrivi.Flush();

//Chiudo gli oggetti

binaryScrivi.Close();

fs.Close();

reader.Close();

//Visualizzo l'immagine

 

Image immagine = null;immagine = Image.FromFile("C:\\pippo.bmp");

PictureBox1.Image = immagine;

PictureBox1.SizeMode =
PictureBoxSizeMode.StretchImage;

}

}

catch (Exception ex)

{

MessageBox.Show("Errore: " + ex.Message);

}

finally

{

//chiusura connessione

if (conDati != null)

{

if (conDati.State == ConnectionState.Open)

{

conDati.Close();

}

conDati.Dispose();

}

}

}

Conclusioni:

In questo articolo, abbiamo visto come tramite le classi del namespace system.io e system.oledb, possiamo salvare un immagine in un database Microsoft Access e visualizzarle in un controllo picturebox, sia con e senza creazione del file immagine. Una soluzione, per non dipendere da file locali.

Tramite la parola download si può scaricare il file di esempio utilizzato nell'articolo.

Download.

 

 

Posted: ott 20 2008, 11.15 by EmanueleM | with no comments
Filed under:
Download Feature Pack di Microsoft SQL Server 2008, ottobre 2008

Rilasciati i Feature pack di Microsoft Sql Server 2008, questi tools, ampliano gli strumenti messi a disposizione dal server db Microsoft.

Da questo sito http://www.microsoft.com/downloads/details.aspx?FamilyID=228de03f-3b5a-428a-923f-58a033d316e1&DisplayLang=it potete scaricare questo pacchetto, per aggiungere nuove funzionalità al database Sql Server 2008.

Per maggiori informazioni e download, visitate il sito indicato.

 

Posted: ott 19 2008, 06.00 by EmanueleM | with no comments
Filed under:
download Microsoft SQL Server 2008 Reporting Services

Nuovi aggiornamenti per il database Sql Server 2008. Da questo sito http://www.microsoft.com/downloads/details.aspx?FamilyID=9f783224-9871-4eea-b1d5-f3140a253db6&DisplayLang=it potete scaricare un tools, per la creazione dei report.

Riporto la descrizione di tale strumento:

Generatore report 2.0 per Microsoft SQL Server 2008 Reporting Services rappresenta un ambiente intuitivo e analogo a Office per la creazione di report che consente a utenti esperti e aziendali di sfruttare la propria esperienza nei prodotti Microsoft Office 2007. Generatore report 2.0 per Microsoft SQL Server 2008 Reporting Services supporta le funzionalità complete di SQL Server 2008 Reporting Services, ad esempio:
  • Layout di report flessibile del linguaggio RDL di SQL Server 2008
  • Visualizzazioni dei dati, inclusi grafici e contatori
  • Caselle di testo in formato RTF
  • Esportazione in formato Microsoft Office Word

Le funzionalità specifiche di Generatore report 2.0 consentono di semplificare il processo di creazione e di modifica dei report e delle query e includono le funzionalità seguenti:
  • Semplicità di utilizzo delle procedure guidate per la creazione di aree dati grafico, matrice e tabella
  • Supporto per l'apertura e la modifica dirette di report archiviati nel server di report
  • Supporto per l'utilizzo di risorse del server, ad esempio origini dati condivise
  • Strumenti di progettazione query per più origini dati, ad esempio Progettazione query di Microsoft SQL Server.

Per il download e maggiori informazioni visitate il sito indicato

Posted: ott 19 2008, 05.54 by EmanueleM | with no comments
Filed under:
Segnalazione articolo: Sql Server 2008 i tipi di dati

Vi segnalo questo articolo http://www.simple-talk.com/sql/learn-sql-server/sql-server-2008-the-new-data-types/ nel quale sono illustrate le novità di Sql Server 2008 per quanto concerne i tipi di dati.

L'articolo è in lingua inglese, ed è tratto dal manuale Brad's Sure Guide to SQL Server 2008 scaricaribile gratuitamente dal seguente sito http://www.red-gate.com/specials/ToolbeltBradsure.htm?utm_source=ssc&utm_medium=email&utm_content=Bradsure-080831&utm_campaign=sqltoolbelt

Che dirvi... buona lettura :-)))

Aggiungere un database da codice in Sql Server 2005 tramite .Net (VB.Net e C#)

L'articolo qui di seguito, scritto per il sito iprogrammatori http://www.iprogrammatori.it/articoli/programmazione/art_aggiungere-un-database-da-codice-in-sql-_132.aspx illustra una tecnica di come effettuare un attach di un database Sql server.

L’esempio che viene proposto, illustra una tecnica di come effettuare un “attach” di un database (“.mdf”) in un Database Sql Server 2005, tramite la tecnologia .Net con i linguaggi di programmazione Visual Basic Net e C#.

In un primo esempio, utilizzeremo la classe sqlConnection  impostandogli direttamente la connectionstring , impostandogli, mentre nel secondo caso, utilizzaremo in aggiunta alla classe sqlconnection, anche la classe sqlconnectionstringbuilder.

 Creazione dell’interfaccia.

Si crea un nuovo progetto in Visual Studio 2005, di tipo Windows Application, nella form inseriamo due pulsanti, il tutto come mostrato in figura 1.

.

 

 

Figura 1

Stesura del codice.

Terminata la fase di creazione della nostra form, passiamo in visualizzazione codice, come spazio dei nomi utilizzeremo systen.data.sqlclient, per la gestione delle classi per il database sql server.

Di seguito si riporta tale frammento.

VB.Net

Imports System.Data.SqlClient

C#

using System.Data.SqlClient;

Per il primo pulsante, quella con la scritta “Attach –SqlConnectionString”, scriviamo il codice che fa uso della classe sqlconnection, e passandogli nel costruttore, la connectionstring con scritta "AttachDBFilename",  il tutto come riportato qui di seguito.

VB.Net

Dim condati As New SqlConnection("Data Source=(local);AttachDbFilename=C:\immagini.mdf;Initial Catalog=Nomedb;Integrated Security=True")

        condati.Open()

C#

SqlConnection condati = new SqlConnection("Data Source=(local);AttachDbFilename=C:\\immagini.mdf;Initial Catalog=Nomedb;Integrated Security=True");

            condati.Open();

  Mentre per il pulsante con la scritta “Attach – SqlConnectionStringBuilder” utilizzeremo le classi sqlconnectionstring e sqlconnectionstringbuilder, utilizzando la proprietà attachdbFilename di quest'ultima classe, si potrà fare un attach del database.
Il tutto come riportato qui di seguito.

VB.Net

Dim stringConnection As String = "Server=(local);" & "Integrated Security=True"

        Dim conStringBuilder As New SqlConnectionStringBuilder(stringConnection)

        'imposto la proprietà in cui si trova il db mdf

        conStringBuilder.AttachDBFilename = "C:\immagini.mdf"

        'imposto il nome

        conStringBuilder.InitialCatalog = "NomeDB"

        Dim ConDati As New SqlConnection(conStringBuilder.ConnectionString)

        ConDati.Open()

C#

string stringConnection = "Server=(local);" + "Integrated Security=True";

            SqlConnectionStringBuilder conStringBuilder = new SqlConnectionStringBuilder(stringConnection);

            //imposto la proprietà in cui si trova il db mdf

            conStringBuilder.AttachDBFilename = "C:\\immagini.mdf";

            //imposto il nome

            conStringBuilder.InitialCatalog = "NomeDB";

            SqlConnection ConDati = new SqlConnection(conStringBuilder.ConnectionString);

            ConDati.Open();

Conclusioni

Questo esempio di codice, che si può scaricare qui di seguito, tramite la parola download, ha illustrato una tecnica di come aggiungere da codice un database al server db di sql Server 2005.

 

Download

 

 

Posted: ott 10 2008, 02.03 by EmanueleM | with no comments
Filed under:
Community after hour il primo del tour dei Microsoft Day

Come molti di voi già sanno, tra ottobre e novembre, si svolgeranno un ciclo di eventi molto interessanti riguardante la tecnologia Microsoft, chiamati appunto Microsoft Days (dove ci sarò anch'io, per Roma :-))))   ) http://blog.shareoffice.it/emanuele/archive/2008/09/24/9697.aspx suddivisi per developer e professionisti IT.

Dopo gli eventi Microsoft, si potrà assistere anche ai Community After Hour, ossia l'evento prosegue, con interventi di alcuni membri di alcune comunità italiane sulla tecnologia Microsoft.

Tra queste, vi segnalo la prima in ordine cronologico, che  è quella organizzata dalla comunità visual basic tips e tick http://www.visual-basic.it/ , l'evento è molto interessante, come potete leggere dall'agenda segnalata nel post di Alex http://community.visual-basic.it/alessandro/archive/2008/10/06/23845.aspx .

Ricordo, ancora quell'estate del 2004, quando il mitico e gentile Gianluca, organizzò a Firenze un evento (che poi risultò il migliore di tutti i tempi)  sulla tecnologia .Net. Oltre agli argomenti, che di sicuro erano interessanti, anche la possibilità di ricevere un libro, software e la versione di Visual Studio, fui triste, non quanto al materiale (non per il materiale, me se allungato il naso, è normale? :-))) ) ma quanto non vedere il mitico Gianluca in azione.

E già, ho avuto il grande piacere ed onoere di conoscere Gianluca e Luca Bianchi, due persone, tecnicamente bravissime, ed umanamente grandiosi, e vederli in azione entrambi, posso garantire che è una bella coppia (intesa come tecnici, non pensate male :-))) ) un bellissimo abbinamento.

Inoltre con loro si aggiunge anche Alessandro Del Sole, che in questi ultimi mesi, si sta facendo molto notare sul web, per i suoi preziosi post, articoli e libri ;-))) .

Insomma, a parte tutto, partecipare al loro evento, è davvero fantastico, non solo per i contenuti, che sono molto validi, ma per la loro alta professionalità, vi assicuro, che sono davvero molto bravi (più di me, be non ci vuole tanto :-))) ). E quindi che aspettate? il 16 ottobre (giorno dell'evento) è alle porte, iscrivetivi dal seguente link http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391657&Culture=it-IT .

E poi, udite udite, da quanto mi sembra di sentire, ci sarà anche una cena (chiederò conferma) allora si che ci sarà tanto da divertirsi, ma non solo, scambiare opinioni  e tanto altro, alle loro cene, mi sono sempre trovato bene ;-))).

Un evento a cui non si può mancare, e poi, conoscendoli, sono molto disponibili, quindi ogni vostro dubbio, sarà chiarito dalla loro immensa professionalità.

L'evento, anche'esso è gratuito, quindi....

Che dirvi.... buona partecipazione.

Great :-))))

Ado.Net, rilevare lo stato della connessione al database Sql Server (VB.Net e C#)

Questo esempio di codice, illustra una tecnica, di come creare una funzione di evento, per gestire il cambiamento di stato, della classe connessione (Sqlconnection) per il database Sql server.
La classe SqlConnection, ha un evento, denominato StateChange, il quale ci permette di sapere il cambiamento di stato, della connessione al database.
Questo esempio, illustra il suo utilizzo.

Creare una funzione di evento, nella quale visualizziamo un messaggio a video, per indicare lo stato precedente al cambiamento e quello attuale.

VB.Net

'Evento per il cambio di stato della connessione

Private Sub ConDati_CambiaStato(ByVal sender As Object, ByVal e As StateChangeEventArgs)

 

MessageBox.Show("Origine: " & e.OriginalState & " attuale: " & e.CurrentState)

 

End Sub

C#

//Evento per il cambio di stato della connessione

void ConDati_CambiaStato(object sender, StateChangeEventArgs e)

{

  MessageBox.Show("Origine: "+  e.OriginalState + " attuale: " +  e.CurrentState);

}




A questo punto, nel codice in cui si effettua la connessione, dobbiamo aggiungere un gestore di evento, ossia assegnare all'evento StateChanged, la nostra funzione evento.

VB.Net

Dim con As String = "Persist Security Info=False;Integrated Security=true;Initial Catalog=test;server=(local)"

        Using ConDati As New SqlConnection(con)

            Try

                ConDati.Open()

                'Creo un gestore di evento per il cambio di stato

                AddHandler ConDati.StateChange, AddressOf ConDati_CambiaStato

                'codice

 

            Catch exdb As SqlException

 

                MessageBox.Show("Errore:" & exdb.Message)

 

                Return

 

            Catch ex As Exception

 

                MessageBox.Show("ERrore:" & ex.Message)

 

                Return

 

            End Try

 

            ConDati.Close()

 

        End Using



C#

string con = "Persist Security Info=False;Integrated Security=true;Initial Catalog=test;server=(local)";

using (SqlConnection ConDati = new SqlConnection(con))

//Creo un gestore di evento per il cambio di stato

{

 ConDati.StateChange += new StateChangeEventHandler(ConDati_CambiaStato);

 try

    {

       ConDati.Open();

       //Codice

 

    }

catch (SqlException exdb)

{

 

    MessageBox.Show("Errore:" + exdb.Message);

    return;

 

}

catch (Exception ex)

{

 

  MessageBox.Show("Errore: " + ex.Message);

return;

}

ConDati.Close();

}

Posted: ott 03 2008, 11.53 by EmanueleM | with no comments
Filed under:
Ado.Net ottenere la versione di Sql Server

Il frammento di codice qui di seguito, illustra una tecnica di come ottenere la versione di Sql Server, tramite Ado.Net.
In sql server, tramite il comando select @@version, possiamo ottenere la versione di sql server, ma con la proprietà ServerVersion della classe sqlconnection, possiamo ottenere tale valore.

VB.Net

Dim con As String = "Persist Security Info=False;Integrated Security=true;Initial Catalog=test;server=(local)"

Using ConDati As New SqlConnection(con)

Try

ConDati.Open()

 

'Verifico la versione:

If String.Compare(ConDati.ServerVersion, "09") >= 0 Then

MessageBox.Show("Versione 2005 o superiore di sql Server")

Else

MessageBox.Show("Versione di Sql server precedente alla 2005")

End If

 

Catch exdb As SqlException

 

MessageBox.Show("Errore:" & exdb.Message)

 

Return

 

Catch ex As Exception

 

MessageBox.Show("ERrore:" & ex.Message)

 

Return

 

End Try

 

ConDati.Close()

 

End Using



C#

  string con = "Persist Security Info=False;Integrated Security=true;Initial Catalog=test;server=(local)";

  using (SqlConnection ConDati = new SqlConnection(con))

{

try

{

ConDati.Open();

 

 //Verifico la versione

if (string.Compare(ConDati.ServerVersion, "09") >= 0)

{

MessageBox.Show("Versione 2005 o superiore di sql Server");

}

else

{

MessageBox.Show("Versione di Sql server precedente alla 2005");

}

 

}

catch (SqlException exdb)

{

 

MessageBox.Show("Errore:" + exdb.Message);

return;

 

}

catch (Exception ex)

{

 

MessageBox.Show("Errore: " + ex.Message);

return;

}

ConDati.Close();

 

}

Posted: ott 02 2008, 02.25 by EmanueleM | with no comments
Filed under:
Documentazione in linea di Microsoft SQL Server 2008 (agosto 2008)

Vi segnalo un nuovo aggiornamento per Microsoft Sql Server 2008, da questo sito http://www.microsoft.com/downloads/details.aspx?FamilyID=765433f7-0983-4d7a-b628-0a98145bcb97&DisplayLang=it potete scaricare la nuova documentazione in linea in lingua italiana, aggiornata ad agosto 2008.

Che dirvi.... buon download :-))))

 

Posted: ott 01 2008, 02.18 by EmanueleM | with no comments
Filed under: