自定义DataSet.Table.FindBy方法

本文关键字:方法 FindBy Table DataSet 自定义 | 更新日期: 2023-09-27 18:09:08

我有一个使用visual studio 2010的配置向导创建的强类型数据集。我可以很容易地找到一个DataRow,只要我知道主键(参见如何:编辑行在一个数据表)。

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

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

假设他们的Northwind DB Customers表有两列(name和type),这两列也可以是复合键。FindBYCustomerNameAndType方法会映射到

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

自定义DataSet.Table.FindBy方法

string whereClause = "name = 'TestCustomerName' and type = 'TestCustomerType'";
DataRow[] x = northwindDataSet1.Customers.Select(whereClause);
if (x.Length > 0){
    CustomersRow customersRow = x[0] as CustomersRow;
    //other code here
}