estoy creando una utilidad para importar datos de Excel a la base de datos Oracle,Necesito una solución para los tipos de datos en Excel que conjetura problema
que tienen una plantilla fija para el archivo de Excel,
Ahora, cuando Estoy tratando de importar los datos por el proveedor de Jet y las herramientas de conexión ADO.Net - Ole, encontré el siguiente problema: hay algunas columnas que no se han importado porque hay tipos de datos mixtos en sus columnas [cadena y número],
Busqué este problema en Internet encontré que el motivo es guessing data types from Excel
El código de carga:
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);
¿Qué debo hacer para decirle a Excel Dejar de adivinar y dame los datos como texto?
si no lo hay, ¿me pueden ayudar con alguna solución alternativa?
Gracias de antemano
¿Cómo está importando los registros de excel a Oracle? código por favor? donde falla? – shahkalpesh
¿No puede simplemente configurar toda la columna como texto en Excel? – Rup
@ shahkalpesh: No arroja ninguna excepción, simplemente ignora los datos de texto porque adivina que el tipo de datos para la columna es el número de los primeros 8 registros y devuelve nulo para los valores no numéricos – Homam