C#獲得access 字段屬性結構,字段名、字段類型、字段大小、小數位數等

OleDbCommand command = new OleDbCommand(sql, Connection);
OleDbDataReader reader = command.ExecuteReader();
DataTable dt = new DataTable();
dt = reader.GetSchemaTable();


下表是dt所包含的內容

dt列名

OLE DB 列 ID

說明

ColumnName

DBCOLUMN_NAME

列的名稱;它可能不唯一。如果無法確定該名稱,則返回空值。

此名稱始終反映最近對當前視圖或命令文本中的列進行的重命名。

ColumnOrdinal

DBCOLUMN_NUMBER

列的序號。它對於行的書籤列(如果有的話)爲零。其他

列從一開始編號。該列不能包含空值。

ColumnSize

DBCOLUMN_COLUMNSIZE

列中值的最大可能長度。對於採用固定長度數據類型的列,

它是該數據類型的大小。

NumericPrecision

DBCOLUMN_PRECISION

如果 DbType 是數值數據類型,則它是列的最大精度。數據

類型爲 DBTYPE_DECIMAL 或 DBTYPE_NUMERIC 的列的

精度取決於該列的定義。如果 DbType 不是數值數據類型,

則它爲空值。

NumericScale

DBCOLUMN_SCALE

如果 DbType 是 DBTYPE_DECIMAL 或 DBTYPE_NUMERIC,

則它是小數點右側的位數。否則,它爲空值。

DataType

映射到列的 .NET Framework 類型。

ProviderType

DBCOLUMN_TYPE

列的數據類型的指示符。如果不同行的列數據類型不同,

則它必須爲 DBTYPE_VARIANT。該列不能包含空值。

IsLong

DBCOLUMNFLAGS_ISLONG

如果列中有包含非常長的數據的二進制長對象 (BLOB),

則提供程序設置 DBCOLUMNFLAGS_ISLONG。非常長

的數據的定義針對於提供程序。此標誌的設置對應於該

數據類型的 PROVIDER_TYPES 行集合中 IS_LONG 列的值。

AllowDBNull

DBCOLUMNFLAGS_ISNULLABLE

如果使用者可將列設置爲空值,或者提供程序無法確定

使用者是否可將列設置爲空值,提供程序就會設置

 DBCOLUMNFLAGS_ISNULLABLE。即使列無法設置爲空值,

它仍可能包含空值。

IsReadOnly

DBCOLUMNFLAGS_WRITE

如果不能修改該列,則爲 true;否則爲 false。如果提供

程序已經設置了 DBCOLUMNFLAGS_WRITE 或

 DBCOLUMNFLAGS_WRITEUNKNOWN 標誌,

則認爲該列是可寫的。

IsRowVersion

DBCOLUMNFLAGS_ISROWID

如果列包含不能寫入的持久性行標識符,並且該標

識符除了標識行以外沒有其他有意義的值,則提

供程序設置 DBCOLUMNFLAGS_ISROWID。

IsUnique

DBCOLUMN_ISUNIQUE

VARIANT_TRUE:在該列中,基表

(返回到 BaseTableName 中的表)中的任意兩行

的值都不能相同。如果該列本身表示一個鍵,或者有

一個只應用於該列的 UNIQUE 類型的約束,則 IsUnique

 保證爲 VARIANT_TRUE。VARIANT_FALSE:該列包含基

表中的重複值。此列的默認值爲 VARIANT_FALSE。

IsKey

DBCOLUMN_KEYCOLUMN

VARIANT_TRUE:該列屬於行集中的列集,結合使用列集中的

列可唯一標識行。IsKey 設置爲 VARIANT_TRUE 的列集必須唯

一標識行集中的行。不要求此列集是最小列集。這組列可以從基

表主鍵、唯一約束或唯一索引生成。

VARIANT_FALSE:不要求該列唯一標識行。

IsAutoIncrement

DBCOLUMN_ISAUTOINCREMENT

VARIANT_TRUE:該列以固定的增量向新行賦值。

VARIANT_FALSE:該列不會以固定增量爲新行賦值。

此列的默認值爲 VARIANT_FALSE。

BaseSchemaName

DBCOLUMN_BASESCHEMANAME

包含列的數據存儲區中的架構的名稱。如果無法確定基架構名稱,

則爲空值。該列的默認值爲空值。

BaseCatalogName

DBCOLUMN_BASECATALOGNAME

包含列的數據存儲區中的目錄的名稱。如果無法確定基目錄名稱,

則爲空值。該列的默認值爲空值。

BaseTableName

DBCOLUMN_BASETABLENAME

包含列的數據存儲區中的表或視圖的名稱。如果無法確定基表名稱,

則爲空值。該列的默認值爲空值。

BaseColumnName

DBCOLUMN_BASECOLUMNNAME

數據存儲區中列的名稱。如果使用別名,它可能不同於在

 ColumnName 列中返回的列名稱。如果無法確定基列名稱,

或者如果行集合列從數據存儲區中的列導出但不等於該列,則爲空值。

該列的默認值爲空值。


發佈了31 篇原創文章 · 獲贊 23 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章