Problema Copia DataRows tra DataTables

venerdì 08 settembre 2006 - 23.58

franksnet Profilo | Newbie

Devo importare un file Csv all'interno di un database SQL Server 2005.
Apro il file, lo metto in un DataTable diciamo "di servizio" dopo di che dovrei copiare tali dati nel DataTable collegato alla tabella che mi interessa. Il Csv ha questo formato:

AMM;AMMINISTRATIVO;NOTE

Mentre la tabella di destinazione è formata da 3 colonne:
Codice (Chiave Primaria)
Descrizione
Note

Il Codice è il seguente:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


Mi da il messaggio d'errore "Column 'Codice' does not allow nulls vb .net"
Nel file Csv non ci sono campi vuoti, e da il problema anche lasciando una sola riga; lo schema del csv coincide con quello della tabella;anche provando a far si che il campo codice non sia chiave primaria mi da lo stesso errore.
Preciso che se bypasso la copia dati tra i due datatable la lettura del file csv va a buon fine e mi viene mostrato correttamente nel datagridview (ovviamente in quel caso setto il DataSource del Datagrid su objDataTable)

Dove sbaglio ?!

mirio Profilo | Newbie

Come vedi ho cambiato la stringa di connessione
se hai la prima row del file csv come intestazione metti HDR=Yes
altrimenti se hai solo dati nel file lascia HRD=No

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
'Immagino che metti le righe in un datagrid o altro controllo
' per controllare le righe.

franksnet Profilo | Newbie

Ciao Mirio ...

il file Csv non ha header quindi era corretto HDR=No

Il mio problema comunque non è leggere i dati dal file Csv, cosa che riesco a far il problema è che questi dati poi devo memorizzarli nel database e la lettura così com'è non consente di farlo, o perlomeno se lo consente son io che ignoro il modo !!

Come ho scritto il problema è che così ottengo i dati del csv caricati in un DataTable ... come faccio a far si che da li vengano inseriti nell'apposita tabella (che ha la stessa struttura del csv) ?!

L'idea che ho provato a realizzare, senza riuscirci, era creare un altro datatable, collegato alla tabella del database, nel quale andare a inserire i dati, ma ottengo l'errore che ho riportato ...

mirio Profilo | Newbie



Esempio :

Ho creato una tabella in mssql in dbtest di nome "Amm"
con 3 campi:
Codice nvarchar 50 ' Ma non ci sono problemi se usi numerico
Descrizione nvarchar 255
Note nvarchar 255

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5