Esportazione dati da Access a Sql Server - Tutorials Programmazione Web / Software (Pag.1) | AndreaCammarata.com
Italiano Inglese Francese Spagnolo Tedesco Olandese
Tutorials Programmazione Web / Software

Esportazione dati da Access a Sql Server

Tutorial Picture

Cosa tratta questo Tutorial?

Questo tutorial vi spiegherà in pochi e semplici passaggi, come poter esportare il contenuto di una tabella MS Access, all'interno di un Database Sql Server. Pochi e semplici passaggi per risolvere una delle problematiche pù diffuse tra i progammatori ovvero le migrazioni dati.
Video

Video

Download

Download

Introduzione

La maggior parte delle problematiche cui uno sviluppatore web / software si trova a dover affrontare ogni giorno, sono spesso legate ad operazioni monotone e ricorsive, le quali andranno ripetute un numero imprecisato N di volte per altrettanti X clienti. Una di queste operazioni risulta essere per l'appunto legata a procedure d'importazione e migrazione dati da un Database di origine ad uno di destinazione.
L'esempio più lampante di tale richiesta, è quella in cui un cliente possessore di un sito web / software sviluppato ai tempi del Carosello, decida un bel giorno di svegliarsi e mantenersi al passo con la tecnologia puntando su database più performanti e professionali del loro caro e purtroppo ormai obsoleto MS Access. Ora la domanda sorge spontanea: "Come poter raggiungere tale obbiettivo nel migliore dei modi, utilizzando il minimo delle risorse disponibili e rientrando nei brevi tempi di sviluppo previsti?". In questo Tutorial troverete una spiegazione esaustiva e dettagliata su come effettuare questa operazione in pochi e semplici passaggi.

Esaminiamo la tabella da esportare

Prima di cominciare con le operazioni di esportazione / importazione dati vere e proprie, diamo un'occhiata alla Tabella che vogliamo migrare dal nostro Database MS Access di origine studiandone la sua struttura ed i campi di cui questa risulta essere composta.
Questo Tutorial prenderà ad esempio un'ipotetica tabella contenete le anagrafiche Clienti strutturata come segue

Anteprima


Come si può notare dall'immagine soprastante, la tabella da noi in analisi non ha una struttura particolarmente complessa, questa è infatti composta da una decina di campi addetti ad identificare univocamente ogni singolo utente nel nostro Database tramite le più classiche informazioni ad essi associabili quali nome, cognome, data_nascita, ecc. e dai classici parametri di accesso username e password.

Come procedere?

Per raggiungere lo scopo che ci siamo prefissati occore avere bene in mente come procedere e quali passaggi dovranno essere effettuati.
La soluzione che questo Tutorial propone, si suddivide in 3 semplci passaggi:

  • Conversione della tabella "Utenti" del database MS Access di origine in flusso dati XML.
  • Creazione dello schema XML di mappaggio dati.
  • Importazione del flusso dati XML precedentemente generato, all'interno della tabella contenuta nel nostro Database di destinazione SQL Server tramire oggetto COM XML BULK LOAD, utilizzando lo schema di mappatura dati opportunamente realizzato nel passaggio precedente.

Ma andiamo con ordine ed esaminiamo singolarmente ed in profondità ognuno di questi passaggi.

Conversione dati Access - XML

Ora è arrivato il momento di entrare nel pieno del Tutorial vero e proprio.
Prima di tutto occorre includere all'interno della nostra pagina tutte le librerie necessarie all'esecuzione del codice sorgente presente all'interno di questo Tutorial

Importiamo le librerie necessarie



C#
   1:  using System.Data;
   2:  using System.Data.OleDb;
   3:  using System.Xml;


Visual Basic
   1:  Imports System.Data
   2:  Imports System.Data.OleDb
   3:  Imports System.Xml




Ora, come prima vera e propria operazione da effettuare, occore stabilire una connessione con il Database di origine MS ACCESS, che supporremo trovarsi all'interno della directory "C:\Database\DatabaseCliente.mdb", quindi procediamo come segue:



Stabiliamo la connessione con il database Access



C#
   1:  //Definizione dell'oggetto addetto alla connessione al database ACCESS
   2:  OleDbConnection connection = new OleDbConnection();
   3:  //Viene impostata la stringa di connessione
   4:  connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Database\\DatabaseCliente.mdb";
   5:  // Viene stabilita la connessione al Database MS Access di origine
   6:  connection.Open();


Visual Basic
   1:  'Definizione dell'oggetto addetto alla connessione al database ACCESS
   2:  Dim connection As New OleDbConnection
   3:  'Viene impostata la stringa di connessione
   4:  connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Database\DatabaseCliente.mdb"
   5:  'Viene stabilita la connessione al Database MS Access di origine
   6:  connection.Open()




Ora che abbiamo stabilito la connessione con il nostro database Access siamo pronti ad esportare l'intero contenuto della tabella Utenti, all'interno di un documento XML ben formato. Vi assicuro che l'operazione richiede molto meno impegno di quello che possiate immaginare. Non ci credete? Date un'occhiata al codice sottostante e sono sicuro che mi darete ragione.



Generiamo il documento XML



C#
   1:  //Vengono reperiti tutti i record all'interno della tabella Utenti
   2:  string sql = "SELECT * FROM Utenti ORDER BY id ASC";
   3:  //Viene eseguita la query sopra definita e riempito un DataAdapter con tutti i record che questa ritornerà
   4:  OleDbDataAdapter adapter = new OleDbDataAdapter(sql, connection);
   5:  //Viene ora creato e riempito un DataSet con tutti i dati caricati all'interno del nostro DataAdapter
   6:  DataSet dataset = new DataSet();
   7:  adapter.Fill(dataset);
   8:  //Viene assegnato il nome del nodo Root del documento XML che verrà generato
   9:  dataset.DataSetName = "ListaUtenti";
  10:  //Viene assegnato il nome dell'elemento padre corrispondente ad ogni singolo Utente 
  11:  dataset.Tables[0].TableName = "Utente";
  12:  //Viene ora generato il documento XML e popolato con i dati reperiti dal DataSet appena creato
  13:  XmlDocument xmlDoc = new XmlDataDocument(dataset);
  14:  //Viene infine salvato il documento XML appena generato contenente tutti i record prelevati dalla tabella Utenti
  15:  xmlDoc.Save(Server.MapPath("dati/Utenti.xml"));


Visual Basic
   1:  'Vengono reperiti tutti i record all'interno della tabella Utenti
   2:  Dim sql As String = "SELECT * FROM Utenti ORDER BY id ASC"
   3:  'Viene eseguita la query sopra definita e riempito un DataAdapter con tutti i record che questa ritorner…
   4:  Dim adapter As New OleDbDataAdapter(sql, connection)
   5:  'Viene ora creato e riempito un DataSet con tutti i dati caricati all'interno del nostro DataAdapter
   6:  Dim dataset As New DataSet
   7:  adapter.Fill(dataset)
   8:  'Viene assegnato il nome del nodo Root del documento XML che verrà generato
   9:  dataset.DataSetName = "ListaUtenti"
  10:  'Viene assegnato il nome dell'elemento padre corrispondente ad ogni singolo Utente 
  11:  dataset.Tables(0).TableName = "Utente"
  12:  'Viene ora generato il documento XML e popolato con i dati reperiti dal DataSet appena creato
  13:  Dim xmlDoc As New XmlDataDocument(dataset)
  14:  'Viene infine salvato il documento XML appena generato contenente tutti i record prelevati dalla tabella Utenti
  15:  xmlDoc.Save(Server.MapPath("dati/Utenti.xml"))




Arrivati a questo punto, troveremo all'interno della cartella "dati" il nostro documento Utenti.xml appena generato contenente per l'appunto l'elenco di tutti gli utenti appena esportati dal nostro database di origine Access. Come avrete potuto sicuramente notare, questo script ha necessitato di pochissimi secondi per la generazione dell'xml, nonostante la nostra tabella contenesse numerosi record al suo interno, e tutto questo senza utilizzare noiosi loop e infinite espressioni di controllo all'interno del nostro codice risultando di conseguenza molto elegante e professionale.

Chiedi aiuto a Google!

Google Come tutti ormai sappiamo Google è il miglior motore di ricerca del mondo per la vastissima gamma di contenuti indicizzati su altrettanti infiniti argomenti compreso quello trattato da questo Tutorial. Per questi motivi Google ti suggerisce un’elenco di pagine correlate a quanto da te ricercato che ti potrebbero aiutare a comprendere meglio il procedimento qui descritto. Segui quindi i link qui a destra per maggiori informazioni oppure procedi leggendo questo Tutorial.
Scrivi nel box qui a canto cosa ne pensi di questo Tutorial essendo il più obbiettivo possibile. Le critiche costruttive sono sempre ben accette quindi sentiti libero di esprimere la tua opinione sempre nei limiti consentiti. Insulti e/o volgarità verranno immediatamente rimosse e il tuo profilo bloccato.
La votazione per gli utenti anonimi è stata disabilitata onde evitare problemi di spam.
Per poter scrivere un commento ed esprimere la tua opinione su questo Tutorial devi accedere al tuo profilo se sei già un utente registrato, altrimenti registrati per avere diritto a vari privilegi!
OneWingedAngel

07/03/2009 1.42.00

Ben fatto Andrea, finalmente una guida chiara e semplice che ha risolto il mio problema alla grande (tra l'altro con l'esempio pratico nel doppio linguaggio di programmazione C# e VB)!
E' la prima volta che entro nel tuo sito ma penso proprio che tornerò a farti visita perchè mi piace lo stile.
Continua così!
Grazie ancora!

Benvenuto, non sei ancora registrato!
Accedi o registrati
Stay Tuned!
As you can see this website is still in costruction so catch the opportunity to follow me inside the biggest social networks to be always updated about the development of AndreaCammarata.com, the upcoming Tutorials, etc.