您可以使用Linq-To-DataSet
最强大的方式(不是在效率方面,而是在可读性和可维护性方面)来查询DataSet
.
阅读更多:查询类型化数据集。
您可以选择在 VS 设计器上创建一个TableAdapter
或仅创建一个。DataTable
如果添加 TableAdapter VS 也会创建相应的 DataTable。如果只添加 DataTable,则必须提供自己的填充方式。 TableAdapters
类似于DataAdapter
ADO.NET 中的 a。
因此,如果您创建了一个名为的 DataSetDataSet1
并添加了一个选择名为 的表的 TableAdapter ,Visual Studio 将自动在命名空间中tabData
创建一个名为的 DataTabletabDataDataTable
和一个TableAdapter
名为的。tabDataTableAdapter
DataSet1TableAdapters
所以你可以用这种方式填写这张表:
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.Age
int)。