c# - .Net C# 数据表和数据集,如何关联表

标签 c# datatable dataset

如何获取几个数据表并将它们放入数据集中并关联(这甚至听起来都不像正确的英语)?

我知道如何创建数据表。

最佳答案

这是我的一个类(class)的例子

// create the relationship between Booking and Booking_MNI
DataRelation relBookingMNI;                         
relBookingMNI = new DataRelation("BookingToBookingMNI",dsBooking.Tables["Booking"].Columns["Record_Id"],dsBooking.Tables["Booking_MNI"].Columns["booking_record_id"]);
dsBooking.Relations.Add(relBookingMNI);

dsBooking 是我的主要数据集,包含 2 个表 Booking 和 Booking_MNI 其中 Record_Id 为主键,booking_record_id 为外键

我更改了下面的代码以匹配我的第一个示例。但我认为这就是你要找的。在我们的生产代码中,这将在行的左侧生成加号“+”,这将允许您深入到相关表中。我再次采用生产代码并使其看起来像第一个示例,所以我不知道它是否会编译,但它应该让你朝着正确的方向前进。

DataTable dtBooking = ds.Tables[0];
DataTable dtBooking_MNI = ds.Tables[1];

dtBooking.PrimaryKey = new DataColumn[] {dtBooking.Columns["Record_Id"]};
dtBooking_MNI.PrimaryKey = new DataColumn[] {dtBooking_MNI.Columns["booking_Record_Id"]};

/* Setup DataRelation between the DataTables */
DataColumn[] dcBookingColsArray = new DataColumn[1] {dtBooking.Columns["Record_Id"]};
DataColumn[] dcBookingMNIColsArray = new DataColumn[1] {dtBooking_MNI.Columns["booking_record_Id"]};

DataRelation relBooking_To_MNI = new DataRelation("Booking_To_MNI",dcBookingColsArray,dcBookingMNIColsArray);
ds.Relations.Add(relBooking_To_MNI_Units);

// grid where you want to display the relationship
grdBooking.DataSource = ds;

关于c# - .Net C# 数据表和数据集,如何关联表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1122024/

相关文章:

c# - 内存读写字节

c# - 为类型 T 编写扩展方法;如何为 T 的字段添加类型约束?

c# - MySqlDataReader 在大约 4 分钟后停止读取并返回

c# - DataRow GetHashCode() 方法值在编辑行后不会改变

vb.net - 从 vb.net 中的数据集中清除所有记录

c# - 访问 token 中不包含 Azure AD v2 角色

jquery - 如何指定DataTable中的列宽?

c# - 使用 row.Field<T>(col) 和基于行/列索引获取单元格值之间的区别

dataset - 是否存在符号形式的音乐 "standard"数据集?

sql - 从SQLDataReader填充DataSet的最佳方法