一般连接SQL数据库的连接字串:

OLE的连接字串只要在其头部增加“Provider=sqloledb;”,即:

需要在代码文件中加一句引用:

建立连接对象






打开连接后一般需要做个判断,防止连接失败
读取架构表信息的方法是GetOleDbSchemaTabl( Guid,Object[] ),其中Guid为OleDbSchemaGuid的成员,决定了获取指定的架构信息,Object[]为限制列数组,随OleDbSchemaGuid不同而不同。常用的OleDbSchemaGuid为Tables、Columns、Indexes 、Primary_Keys。
一、获取数据表字段(列)结构信息


其中,限制列分别为 TABLE_CATALOG、TABLE_SCHEMA、TABLE_NAME、COLUMN_NAME,如果不限制则传递null。
此时,SchemaTable中包含一个字段结构表,此表的每个记录(每行)为[TABLENAME]的每个字段的结构信息,而SchemaTable本身的结构可以通过列信息中获取,SchemaTable的列信息是固定的,以下读取列信息的代码:










SchemaTable中的每个列名和类型如下:
TABLE_CATALOG String
TABLE_SCHEMA String
TABLE_NAME String
COLUMN_NAME String
COLUMN_GUID Guid
COLUMN_PROPID Int64
ORDINAL_POSITION Int64
COLUMN_HASDEFAULT Boolean
COLUMN_DEFAULT String
COLUMN_FLAGS Int64
IS_NULLABLE Boolean
DATA_TYPE Int32
TYPE_GUID Guid
CHARACTER_MAXIMUM_LENGTH Int64
CHARACTER_OCTET_LENGTH Int64
NUMERIC_PRECISION Int32
NUMERIC_SCALE Int16
DATETIME_PRECISION Int64
CHARACTER_SET_CATALOG String
CHARACTER_SET_SCHEMA String
CHARACTER_SET_NAME String
COLLATION_CATALOG String
COLLATION_SCHEMA String
COLLATION_NAME String
DOMAIN_CATALOG String
DOMAIN_SCHEMA String
DOMAIN_NAME String
DESCRIPTION String
COLUMN_LCID Int32
COLUMN_COMPFLAGS Int32
COLUMN_SORTID Int32
COLUMN_TDSCOLLATION Byte[]
IS_COMPUTED Boolean
有了SchemaTable的每个列的结构后,就可以选择性地从中取得[TABLENAME]的字段信息了
































二、获取主键信息
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
COLUMN_GUID
COLUMN_PROPID
ORDINAL
PK_NAME