您的位置:首页 > 数据库

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

2007-08-24 10:26 134 查看
近日写一数据库转换程序,需要读取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,该属性会将主键元数据与默认信息一起加载。例如: [code]

daAuthors.MissingSchemaAction = MissingSchemaAction.AddWithKey;
daAuthors.Fill(dsPubs,"Authors");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: