Sto creando un programma di utilità per importare dati da Excel a database Oracle,Ho bisogno di un workaround per i tipi di Excel Guessing dati problema
Ho un modello fisso per il file di Excel,
Ora, quando Sto cercando di importare i dati dal provider Jet e dagli strumenti di connessione ADO.Net - Ole, ho trovato il seguente problema: ci sono alcune colonne che non sono state importate perché ci sono tipi di dati misti nelle loro colonne [stringa e numero],
Ho cercato questo problema su Internet, ho trovato il motivo è guessing data types from Excel
Il codice di carico:
connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0};Extended Properties=Excel 8.0;");
string columns = "P_ID, FULL_NAME_AR, job_no, GENDER, BIRTH_DATE, RELIGION, MARITAL_STATUS, NAT_ID, JOB_Name, FIRST_HIRE_DATE, HIRE_DATE, CONTRACT_TYPE, GRADE_CODE, QUALIFICATION";
string sheetName = "[Emps$]";
OleDbCommand command = new OleDbCommand(string.Format("select {0} from {1} where p_id is not null", columns, sheetName), connection);
connection.Open();
dr = command.ExecuteReader();
DataTable table = new DataTable();
table.Load(dr);
Cosa devo fare per dire a Excel Smettere di fare supposizioni e mi danno i dati come testo?
se non c'è, puoi aiutarmi con soluzioni alternative?
Grazie in anticipo
Come stai importando i record da Excel a Oracle? codice per favore? dove fallisce? – shahkalpesh
Non puoi semplicemente impostare l'intera colonna come testo in Excel? – Rup
@ shahkalpesh: Non lancia alcuna eccezione, ignora semplicemente i dati di testo perché indovina il tipo di dati per la colonna è il numero dei primi 8 record e restituisce null per i valori non numerici – Homam