OleDbConnection.GetOleDbSchemaTable
在 .NET Framework 2.0 中,要得到表结构的定义,不能简单的用 DataTable.Columns[col].DataType 来获取,有很多信息是无法得到的,要用OleDbConnection.GetOleDbSchemaTable 这个方法。
在 MSDN 中是这么定义的:
public DataTable GetOleDbSchemaTable( Guid schema, Object[] restrictions ) |
参数:
schema
类型:System.Guid
OleDbSchemaGuid 的值之一,它指定要返回的架构表。restrictions
类型:array[]()[]
限制值的 Object 数组。这些值按照限制列的顺序来应用。即,第一个限制值应用于第一个限制列,第二个限制值应用于第二个限制列,依此类推。返回值
类型:System.Data..::.DataTable
一个包含所请求的架构信息的 DataTable。
我要得到一个表的结构,可以这样:
DataTable dtSchema = db.GetOleDbSchemaTable( OleDbSchemaGuid.Columns, new object[] { null, null, TableName, null }); |
返回的 dtSchema 的列分别是:
0: TABLE_CATALOG
1: TABLE_SCHEMA
2: TABLE_NAME
3: COLUMN_NAME
4: COLUMN_GUID
5: COLUMN_PROPID
6: ORDINAL_POSITION
7: ORDINAL_HASDEFAULT
8: ORDINAL_DEFAULT
9: ORDINAL_FLAGS
10: IS_NULLABLE
11: DATA_TYPE
12: TYPE_GUID
13: CHARACTER_MAXIMUM_LENGTH
14: CHARACTER_OCTET_LENGTH
15: NUMERIC_PRECISION
16: NUMERIC_SCALE
17: DATETIME_PRECISION
18: CHARACTER_SET_CATALOG
19: CHARACTER_SET_SCHEMA
20: CHARACTER_SET_NAME
21: COLLATION_CATALOG
22: COLLATION_SCHEMA
23: COLLATION_NAME
24: DOMAIN_CATALOG
25: DOMAIN_SCHEMA
26: DOMAIN_NAME
27: DOMAIN_DESCRIPTION