SqlDataAdapter.FillSchema(DataTable)方法填充数据表的主键和约束
SqlDataAdapter.FillSchema(DataTable)方法填充数据表的主键和约束使用SqlDataAdapter.FillSchema方法可以填充数据表的主键和约束,但无法填充主外键,如DataTable.ParentRelations和DataTable.ChildRelations的数据。
自动填充主键和约束有两种方法: 1. adp.MissingSchemaAction = MissingSchemaAction.AddWithKey 2. dt1 = adp.FillSchema(data, SchemaType.Mapped);//填充结构 C# Code: 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("------------------------------------------------"); } } //来源:C/S框架网(www.csframework.com) QQ:1980854898
参考文档:
C/S框架代码注释如何?每个方法及参数都有说明? C/S开发框架标准版-后台数据更新dalBase类(UML图及方法介绍) 《CS框架V2.2-3.0数据表结构说明文档》.doc WebService架构提交数据-生成仅包含修改了字段的数据表 DataTable与Object互相转换及相关函数转换大全(DataConvert类) C# GridView 资料行数据检查使用的方法(ValidateRow与InvalidRowException) SqlBuilder.cs文件,新增AddParam方法, 支持OutPut参数 DevExpress DateEdit组件是空日期,传入SQL参数报错解决方法 关于数据载体,界面基于DataTable处理,为什么不用对象实体? 校验明细表数据ValidatingDetailData方法有BUG 关于frmBaseChild.SetParameter方法说明与使用,打开窗体传入参数例子 大数据字典表建议屏蔽GetSummaryData方法 实例化Loginer和DAL层对象,调用方法返回数据 使用DbProviderFactories.GetFactory方法需要配置数据库提供者 数据字典重写SaveResultEx UpdateEx方法手动控制事务自动生成流水号
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |