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 列中返回的列名稱。如果無法確定基列名稱, 或者如果行集合列從數據存儲區中的列導出但不等於該列,則爲空值。 該列的默認值爲空值。 |