ado.net 2.0 中获取数据库定义varchar字段长度

来源:互联网 发布:c语言管理系统 编辑:程序博客网 时间:2024/05/13 20:24

 近日写一数据库转换程序,需要读取sqlserver中varchar字段的长度。

结果datacolumn的maxlength属性一直是-1。上网找了找,基本上大叫都处于郁闷不解状态,

后查询msdn网站的一篇文章:

http://support.microsoft.com/kb/314145/zh-cn

见第8条:

SqlDataAdapter 类提供 FillFillSchema 两种方法,这对于加载这些数据很关键。这两种方法均可将信息加载到 DataSet 中。Fill 加载数据本身,而 FillSchema 加载有关特定表的所有可用的元数据(如列名、主键和约束)。处理数据加载的正确方式是先运行 FillSchema,后运行 Fill。例如:

daAuthors.FillSchema(dsPubs,SchemaType.Source, "Authors");daAuthors.Fill(dsPubs,"Authors");
如果您只使用 Fill,则只能加载描述列名和数据类型所需要的基本元数据。Fill 方法不加载主键信息。
若要更改此默认行为,可以将 DataAdapter 对象的 MissingSchemaAction 属性
设置为 MissingSchemaAction.AddWithKey,该属性会将主键元数据与默认信息一起加载。例如: 
daAuthors.MissingSchemaAction = MissingSchemaAction.AddWithKey;daAuthors.Fill(dsPubs,"Authors");
原创粉丝点击