Problema SqlBulkCopy

asp.net c# sqlbulkcopy sql-server-2005

Domanda

io uso SqlBulkCopy per inserire dati da OleDbDataReader (contiene dati da xls) a mssql-2005 ho una cloumn su OleDbDataReader che contiene il numero memorizzato come testo (in xls)

quando guardo i dati mssql vedo null in quella colonna tutte le altre colonne sono mosse ok.

link text

Risposta accettata

devi mappare colonne come nel codice ...

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destConnection))
        {
            bulkCopy.ColumnMappings.Add("ID", "ID");
            bulkCopy.ColumnMappings.Add("Email", "Email");
            bulkCopy.DestinationTableName = "tableName";
            bulkCopy.WriteToServer(ExcelReader);
        }

Risposta popolare

Quando una copia bulk viene eseguita da SQL Server a SQL Server, l'origine è in grado di indicare molto bene i tipi di dati verso la destinazione. Con Excel, la fonte fa ipotesi sul tipo di dati. È possibile che Excel sia formattato come testo, ma l'origine (ODBC?) Potrebbe esaminare le prime 50 righe e supporre che si tratti di un tipo di dati numerico. Anche se i nomi delle colonne corrispondono, se i tipi di dati sono diversi sospetto che la colonna non venga popolata.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché