自定义DataSet.Table.FindBy方法

时间:2011-09-19 22:31:54

标签: c# .net sql dataset strongly-typed-dataset

我有一个使用visual studio 2010的配置向导创建的强类型DataSet。只要我知道主键,我就可以轻松找到DataRow(参见How to: Edit Rows in a DataTable)。

当我不知道PK时会出现问题。有没有办法创建一个返回DataRow的自定义方法,如果您有一组列也可以是复合主键(唯一约束)。使用链接中的示例,我想做这样的事情:

NorthwindDataSet.CustomersRow customersRow = northwindDataSet1.Customers.FindByCustomerNameAndType("TestCustomerName", "TestCustomerType");

这假定他们的Northwind数据库客户表有两列(名称和类型),也可以是复合键。 FindBYCustomerNameAndType方法将映射到

 SELECT *
 FROM Customers
 WHERE name = "TestCustomerName" AND type = "TestCustomerType"

1 个答案:

答案 0 :(得分:1)

string whereClause = "name = 'TestCustomerName' and type = 'TestCustomerType'";
if (northwindDataSet1.Customers.Select(whereClause).GetLength(0) > 0)
    CustomersRow customersRow = (northwindDataSet1.Customers.Select(whereClause)[0] as CustomersRow);