//p_path
:excel
檔案目錄
public
datatable
getdatafromexcel(string
p_path)
else
}catch (exception
e)file.delete(p_path);//
刪除檔案
return
dt;}
string
strsql = "select * from[sheet1$] where [
銀行賬號
] is not null and [
銀行賬號
] <> ''"
;使用上面會出現
「定義了過多的字段
」這個錯誤。
鬱悶的是你的
excel
表字段就幾十列(有效資料列),為什麼會說「定義了過多的字段」呢?,為什麼我要特別強調是有效的資料列呢????
問題原因:
excel
總列數是
a-iv
(255
個單位長度
),建立
excel
時候,執行了插入操作,會是
excel
長度超過
255(雖然列數還是
a-iv
),導致無法讀取。用上面的查詢語句沒有限制
sheet1$
這張表的列數(程式在構造
oledbdataadapter
會載入所有的列數,包括空白列
),這樣就超過了
excel
長度域解決方法:
目前我這張
sheet1$
表有效資料列最長只有
100列(其他的是空白列),所以查詢條件我就限定在
a—cv
列,這樣就在
mydataadapter
.fill(ds, "sheet1$");
就不會報
」定義了過多的字段
」出錯。
我猜想,插入行也同樣會出現這樣的問題,只要我們在查詢條件下,限定行數和列數就可以避免此類問題。
官網的解釋
症狀:當您新增新字段或更改現有欄位的屬性後,儲存表時,您收到訊息
"定義了過多的字段,
"跟郵件
"中遇到錯誤儲存。
資料型別未被更改"。
即使您有
255
個或更少在表中定義的字段,您將會收到這些訊息。
注意:您還收到此資訊如果新增或修改基於具有太多的字段的表的報表中的字段。
注意:此錯誤訊息生成
microsoft jet
資料庫引擎
3.0
保留的錯誤號
3190
。本文假定您熟悉
和建立microsoft access
應用程式使用隨
microsoft access
提供的程式設計工具。
有關的更多資訊,請參閱
"構建應用程式與
microsoft access"
手冊的版本。
注意:被稱為
access basic
在microsoft access
版本1 x
和2.0。有關
access basic
,請參考
microsoft access
版本1 x 中的"
介紹到programming"
手動或在
microsoft access
版本2.0"
構建應用程式"手冊
原因:若要釋放內部的列數為已刪除的字段或字段,修改其屬性,執行以下項:·在
microsoft access 7.0 或97
,單擊另存為
/ 匯出在的檔案選單並儲存不同的名稱表。
然後,刪除原始表,並重命名為原始表名稱的新錶。
警告:在檔案選單在版本
1 x
或2.0
上單擊另存為複製表,不記錄結構。
在使用追加查詢來填充新的表之前,不要刪除原始表。·在
microsoft access 1 x
或2.0
,單擊儲存檔案選單上,並儲存不同的名稱表。
填充新錶,原始表中的資料。
然後,刪除原始表,並重命名為原始表名稱的新錶。
您還可以通過壓縮資料庫來釋放內部的列數。
讀取Excel異常定義了過多字段的解決方法
從excel檔案匯入資料 檔案的全路徑 excel文件裡的表名稱 public static dataset class excelsql string excelstr,string sheetname string conn str provider microsoft.jet.oledb.4....
mysql查詢多欄位 mysql多欄位模糊查詢
在最近的乙個專案需要實現在mysql單錶多關鍵字模糊查詢,但這數個關鍵字並不一定都存在於某個字段。例如現有table表,其中有title,tag,description三個字段,分別記錄一條資料的標題,標籤和介紹。然後根據使用者輸入的查詢請求,將輸入的字串通過空格分割為多個關鍵字,再在這三個欄位中查...
lucene多欄位查詢
booleanquery typenegativesearch new booleanquery queryparser parser new queryparser contents new analyzer parser.setdefaultoperator queryparser.and op...