2011-09-19 83 views
0

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

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

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

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

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

回答

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);