我創建一個實用程序來從Excel導入數據到Oracle數據庫的解決方法,我需要爲Excel猜測數據類型的問題
我對Excel文件的固定模板,
現在,當我試圖通過Jet提供程序和ADO.Net - Ole連接工具導入數據時,發現以下問題:有些列未被導入,因爲其列[string和number]中有混合的數據類型,
我在網上找了這個問題我發現原因是guessing data types from Excel
負載代碼:
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);
我應該怎麼做,告訴Excel中不必猜測,給我數據,文本?
如果沒有,你能幫助我與任何變通辦法?
在此先感謝
你是如何從Excel導入記錄到Oracle?代碼請?它在哪裏失敗? – shahkalpesh 2010-08-29 14:40:02
您是否可以將整個列設置爲Excel中的文本? – Rup 2010-08-29 14:53:59
@ shahkalpesh:它不拋出任何異常,只是忽略文本數據,因爲它會猜測列的數據類型與前8個記錄數和返回null非數值 – Homam 2010-08-29 14:56:47