SqlDataAdapter.FillSchema(DataTable)方法填充数据表的主键和约束
自动填充主键和约束有两种方法:
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("------------------------------------------------");
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
FastReport.NET 2023使用DataTable报表数据源配置JsonDataSourceConnection连接|C/S开发框架
FastReport.NET 2023使用DataTable报表数据源配置MsSqlDataConnection连接|C/S开发框架
C# DataTable与XML互转|C/S开发框架
使用System.Data.OracleClient组件搭建Oracle数据库连接获取DataTable|C/S开发框架
删除DataTable空记录行 RemoveEmptyRows
C#DataTable(转List /JSON/字典 互转)-C/S开发框架
C# FieldFitString类:将资料表(DataTable)已修改的资料行数据去左右空格、全角转半角
C#.NET给DataTable日期类型的列赋值报错:所需类型是 MySqlDateTime,值类型与列类型不匹配
升级程序DataTable.ReadXml报错:MySql.Data.Types.MySqlDateTime is not allowed here
C# DataSet和DataTable
DataTable已属于另一个DataSet
检查Datatable表指定字段的值是否重复|C/S框架网
C# ADO.NET根据实体对象类型转换创建DataTable对象
资料表工具类(DataTableTools)
关于数据载体,界面基于DataTable处理,为什么不用对象实体?
DataTable与Object互相转换及相关函数转换大全(DataConvert类)
什么是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内容管理系统 |
在线客服
