SqlDataAdapter.FillSchema(DataTable)方法填充数据表的主键和约束
2015-09-24 14:52
1041 查看
本文转载自http://www.csframework.com/archive/2/arc-2-20110730-1768.htm
使用SqlDataAdapter.FillSchema方法可以填充数据表的主键和约束,但无法填充主外键,如DataTable.ParentRelations和DataTable.ChildRelations的数据。
自动填充主键和约束有两种方法:
1. adp.MissingSchemaAction
= MissingSchemaAction.AddWithKey
2. dt1
= adp.FillSchema(data, SchemaType.Mapped);//填充结构
具体代码如下:
点击运行,结果如下图
使用SqlDataAdapter.FillSchema方法可以填充数据表的主键和约束,但无法填充主外键,如DataTable.ParentRelations和DataTable.ChildRelations的数据。
自动填充主键和约束有两种方法:
1. adp.MissingSchemaAction
= MissingSchemaAction.AddWithKey
2. dt1
= adp.FillSchema(data, SchemaType.Mapped);//填充结构
具体代码如下:
public class FillDataWithSchema { private SqlConnection _Connection = null; public FillDataWithSchema() { string S = @"Server=.\SQLExpress;Database=D:\MY SOURCECODE\CSHARP\CSFRAMEWORKTESTDB\CSFrameworkTestDB.MDF;Integrated Security=True;"; _Connection = new SqlConnection(S); } public void FillData() { DataTable data = new DataTable(); SqlDataAdapter adp = new SqlDataAdapter("SELECT * FROM tb_MyUser", _Connection); adp.Fill(data);//填充数据 ShowSchema(data);//显示结构 //AddWithKey: 自动填充数据表结构,如:主键和限制 //预设值Add,不填充结构 adp.MissingSchemaAction = MissingSchemaAction.AddWithKey;//Default Value is: Add adp.Fill(data);//填充数据和结构,如:主键和限制 ShowSchema(data);//显示结构 DataTable dt1; dt1 = adp.FillSchema(data, SchemaType.Mapped);//填充结构 ShowSchema(dt1);//显示结构 _Connection.Close(); Console.ReadLine(); } /// <summary> /// 显示表结构 /// </summary> /// <param name="data"></param> private void ShowSchema(DataTable data) { Console.WriteLine("Rows:" + data.Rows.Count); //主键 Console.WriteLine("PrimaryKey:" + data.PrimaryKey.Length.ToString()); foreach (DataColumn c in data.PrimaryKey) Console.WriteLine(c.ColumnName); //约束 Console.WriteLine("Constraints:" + data.Constraints.Count.ToString()); foreach (Constraint c in data.Constraints) Console.WriteLine(c.ConstraintName); //无法获取主外键主联定义 Console.WriteLine("ParentRelations:" + data.ParentRelations.Count.ToString()); Console.WriteLine("ChildRelations:" + data.ChildRelations.Count.ToString()); Console.WriteLine("------------------------------------------------"); } }
点击运行,结果如下图
相关文章推荐
- loadrunner链接mysql数据库
- 如何在Excel中快速组成SQL
- memcached 学习
- C#操作sqlite数据库使用SQLiteParameter传递参数
- sqlite3: tool for sqlite
- C#操作sqlite数据库使用SQLiteParameter传递参数
- mysql cache使用
- MSSQL 让排序更方便灵活
- 数据库连接
- MySQL 使用方法简单教程
- 读取数据库中timestamp类型去掉毫秒
- SQL vs NoSQL 没有硝烟的战争!
- Redis - 环境的安装配置
- oracle性能优化三——数据库系统优化之toad监控
- sql 排序将为0的放在前面
- sql server数字小写人民币转换成大写人民币(两种方式)
- MySQL用户管理
- sqlserver 2008 start with connect by 实现
- PLSQL Developer windows 64位连接数据库的问题
- nodejs redis 文件 二进制存取