Trasferire dati da una DataTable a SQLServer con .NET e SQLBulkCopy

 
20 mar 2014

.NET ci mette a disposizione un potentissimo strumento, ai molti misconosciuto, per trasferire con una semplice riga di codice il contenuto di una DataTable in una tabella fisica di un database SQLServer.

La classe in questione è SqlBulkCopy e la troviamo nel namespace Data.SqlClient.

Come suggerisce il nome, quello che sostanzialmente fa è trasferire in un colpo solo tutti i dati della nostra DataTable di partenza direttamente nella tabella di destinazione, con prestazioni ottimali e senza dover scrivere alcun loop che cicli attraverso righe e colonne della tabella di partenza. L'unico requisito richiesto è che sorgente e destinazione abbiano lo stesso tracciato record.

Ecco un esempio minimale in VB.NET:

Dim sbc1 As New Data.SqlClient.SqlBulkCopy([CONNECTION STRING VALIDA])
sbc1.DestinationTableName = [NOME TABELLA SU SQL SERVER]
sbc1.WriteToServer([OGGETTO DATATABLE])

Davvero una grandissima facilitazione, nascosta tra le pieghe del potente framework .NET.

Come referenza, ecco il corrispondente link alla documentazione Microsoft: http://msdn.microsoft.com/library/system.data.sqlclient.sqlbulkcopy(v=vs.100).aspx

© Gabriele Pala, 2012-2014. All rights reserved. P.IVA 01137470314 - C.F. PLAGRL77S16L424T | Cell: 320 3334704 | Mail: info@fvg-informatica.it | Strada delle Acacie, 5/A - Staranzano (GO) | Privacy & Cookies
Questo sito non utilizza cookie di profilazione propri. Sono invece utilizzati cookie tecnici e di terze parti per fini operativi, statistici e pubblicitari. Per sapere a cosa servono i cookie e per impostare le proprie preferenze visitare la pagina Privacy & Cookies. Continuando la navigazione o chiudendo questo avviso, acconsenti all'uso dei cookie e ai termini riportati alla pagina Privacy Policy.
OK