回答
这里是我的一个类的实例
// 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_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;
我有但之前从未使用过它,并担心要花上太多时间才能加速。 – flavour404 2009-07-13 21:16:12
值得一看 - 如果你有时间可用 – 2009-07-13 21:26:31
看那的DataRelation类。在DataSet中用于将两个DataTable关联在一起。
也许你正在寻找一个解决方案orm像Entity Framework,或Linq to SQL?
适应症,如果我误解了这个问题。
没问题,感谢任何有用的回应:) – flavour404 2009-07-13 22:03:45
如果您使用Visual Studio 2005或更高版本请尝试以下操作: 右键单击您的项目,然后选择“添加/的newitem ...”,然后从向导中选择数据集,这将创造你一些XSD和打开数据集设计器。 现在您可以创建多个表,向每个表添加列并在这些表之间绘制关系(外键,带/不带级联...)。自动生成的[YourNewDataSet} .Designer.cs文件中的 ,您将找到这些关系的源代码。 事情是这样的:
this.relationFK_DataTable2_DataTable1 = new global::System.Data.DataRelation("FK_DataTable2_DataTable1", new global::System.Data.DataColumn[] {
this.tableDataTable2.asdfasColumn}, new global::System.Data.DataColumn[] {
this.tableDataTable1.asdfaColumn}, false);
与往常一样,你可以去除此代码颇有些部分,如果你的代码用手,而不是使用设计。
假设您的DataTables命名为“orders”和“orderDetails”。您希望通过它们的OrderNumber列创建它们之间的关系。我们假定订单是父级,orderDetails是孩子。我们希望遍历订单,然后打印每个相关的小计。
DataSet orderData = new DataSet("OrderData");
orderData.Tables.Add(orders);
orderData.Tables.Add(orderDetails);
orderData.Relations.Add("Order_OrderDetails", orders.Columns["OrderNumber"], orderDetails.Columns["OrderNumber"]);
现在,当你想用这种关系别的地方在你的代码:
DataRelation orderRelation = orderData.Relations["Order_OrderDetails"];
foreach (DataRow order in orders.Rows)
{
Console.WriteLine("Subtotals for Order {0}:", order["OrderNumber"]);
foreach (DataRow orderDetail in order.GetChildRows(orderRelation))
{
Console.WriteLine("Order Line {0}: {1}", orderDetail["OrderLineNumber"], string.Format("{0:C}", orderDetail["Price"]));
}
}
试试这个这里是二表1类& 2.产品
string query = "SELECT * FROM Categories; SELECT * FROM Products";
SqlConnection con = new SqlConnection();
SqlDataAdapter da = new SqlDataAdapter(query,con);
DataSet ds = new DataSet();
da.Fill(ds, "CategoriesAndProducts"); //CategoriesAndProducts dataset
string s = ds.Tables[0].Rows[0]["Name"].ToString();
string s1 = ds.Tables[1].Rows[0]["Name"].ToString();
Console.WriteLine(s); //from categories [0][0] like Electronic
Console.WriteLine(s1); //from Products [0][0] like LG
- 1. 数据集和数据关联
- 2. 关联数组与.NET/Oracle数据交换的UDT表
- 3. 单个数据表中的数据集联盟表
- 4. 如何将数据表转换为相关数据集
- 5. 动态数据关联相关表值?
- 6. 跟踪数据表和数据集
- 7. 如何使用c中的数据集加载数据表#
- 8. 大型数据集 - .NET Framework和C#
- 9. C#表单数据集获取子表单关闭后的数据
- 10. 如何使用C#.Net从数据表中删除合并的数据表?
- 11. 重置c#.net中的数据表中的数据.net
- 12. RapidMiner联盟收集(数据表)
- 13. mysql选择加入数据集和c#中的数据表#
- 14. C#的WinForms:关联的数据表,以datagriview的数据源 - 问题
- 15. CakePHP模型关联表w /数据和新表
- 16. 将串行数据关联到表
- 17. 关联数据库中的两个表
- 18. 关联数据和标记
- 19. 如何使用c#.net搜索数据表中的行.net
- 20. 动态修改.NET数据集数据表
- 21. 筛选数据集或数据表.net 2.0
- 22. 数据集/数据表到Excel模板文件.NET
- 23. ADO .NET - 将数据表添加到多个数据集
- 24. 如何使用数据集和数据表更新数据库中的两列
- 25. 从数据集和数据表中生成水晶报表
- 26. 同步数据集和数据表与数据库
- 27. 如何将数据集/数据表从Tomcat转发到.NET应用程序?
- 28. 从数据集表
- 29. 图表数据集
- 30. 如何将关联规则集成到新的数据集
谢谢,这是有道理的...现在我会给它一个尝试:)。 – flavour404 2009-07-13 22:05:47