程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> asp.net讀excle的數據類型不統一取出空值問題

asp.net讀excle的數據類型不統一取出空值問題

編輯:關於ASP.NET

如果表格裡某列全是數字或是字符沒問題,但如果混合了全是數字和部分字符就會有部分讀取為空連接EXCEL方式如下

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=" + _physicalPath +";Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();

先是直接FILL到DATASET裡,以為是數據類型不正確,再建了一個臨時的datatable,導進去還是空值,網絡上搜了下,全是一樣的問題解決不了

string strConn ="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + _physicalPath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';";

後來經過網絡查詢相關資料,總算明白原因。小弟整理如下,供大家參考。

1。excel的連接字串中的擴展屬性必須包含IMEX=1;

2.修改注冊表中的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows的值為0。TypeGuessRows的系統默認值為8,表示系統從文件中的前8行數據中采樣取得數據類型。如果前8行中含有數字類型又有文本類型,采樣的數據類型為數目多的類型。例如前8行中有5行數字,3行文本,則返回5行數字,3行為空。如果4行數字,4行文本,則返回4行數字類型,4行為空。8行以後的數據類型若和采樣類型一樣,則返回真實數據,否則返回空。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved