您可以使用Linq-To-DataSet最强大的方式(不是在效率方面,而是在可读性和可维护性方面)来查询DataSet.
阅读更多:查询类型化数据集。
您可以选择在 VS 设计器上创建一个TableAdapter或仅创建一个。DataTable如果添加 TableAdapter VS 也会创建相应的 DataTable。如果只添加 DataTable,则必须提供自己的填充方式。 TableAdapters类似于DataAdapterADO.NET 中的 a。
因此,如果您创建了一个名为的 DataSetDataSet1并添加了一个选择名为 的表的 TableAdapter ,Visual Studio 将自动在命名空间中tabData创建一个名为的 DataTabletabDataDataTable和一个TableAdapter名为的。tabDataTableAdapterDataSet1TableAdapters
所以你可以用这种方式填写这张表:
var dataSet = new DataSet1();
var da = new DataSet1TableAdapters.tabDataTableAdapter();
da.Fill(dataSet.tabData);
假设表有列Name,Age并且您想要查找名称以开头"Jon"且年龄大于 30 的所有行,您可以使用 LINQ Where:
var jons = dataSet.tabData
.Where(r => r.Name.StartsWith("Jon") && r.Age > 30);
foreach (DataSet1.tabDataRow row in jons)
{
Console.WriteLine("{0} is {1} years old", row.Name, row.Age);
}
请注意,您可以使用安全的 LINQ-To-DataSet 类型(r.Name是字符串和r.Ageint)。