Tworzę narzędzia do importowania danych z programu Excel do bazy danych Oracle,muszę obejście Excel Guessing typy danych problemu
Mam stały szablon dla pliku Excel,
Teraz, kiedy próbuję zaimportować dane przez dostawcę Jet i narzędzia do połączeń ADO.Net - Ole, znalazłem następujący problem: nie ma niektórych kolumn nie zostały zaimportowane, ponieważ są mieszane typy danych w swoich kolumnach [ciąg i liczba],
Szukałem tego problemu w internecie Znalazłem powód: guessing data types from Excel
Kod obciążenie:
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);
Co należy zrobić, aby powiedzieć Excel STOP zgadywania i dać mi dane jako tekst?
jeśli nie, czy możesz mi pomóc w obejściu?
Z góry dziękuję
W jaki sposób importujesz rekordy z programu Excel do Oracle? kod, proszę? gdzie to się nie udaje? – shahkalpesh
Czy nie możesz ustawić całej kolumny jako tekstu w programie Excel? – Rup
@ shahkalpesh: Nie rzuca żadnego wyjątku, po prostu ignoruje dane tekstowe, ponieważ zgaduje, że typ danych dla kolumny jest liczbą z pierwszych 8 rekordów i zwraca wartość null dla wartości nie numerycznych. – Homam