📜  从数据适配器转换为 Ienumerable C# (1)

📅  最后修改于: 2023-12-03 15:21:58.241000             🧑  作者: Mango

从数据适配器转换为 IEnumerable

数据适配器是一种用于将数据从数据源填充到应用程序中的对象。在某些情况下,我们可能需要使用 LINQ 或 foreach 等方法遍历数据,这时候将数据适配器转换为 IEnumerable 可能会更方便。本文将介绍如何将数据适配器转换为 IEnumerable。

示例

假设我们有一个数据适配器,用于从数据库中检索数据:

var connectionString = "Data Source=.;Initial Catalog=MyDatabase;Integrated Security=True";
var adapter = new SqlDataAdapter("SELECT * FROM [Customers]", connectionString);
var table = new DataTable();
adapter.Fill(table);

我们可以这样将其转换为 IEnumerable:

var rows = table.Rows.Cast<DataRow>();
foreach (var row in rows)
{
    Console.WriteLine(row.Field<string>("Name")); 
}

或者使用 LINQ 来查询数据:

var result = table.AsEnumerable()
                  .Where(row => row.Field<string>("City") == "New York")
                  .Select(row => row.Field<string>("Name"));

这样就可以方便地处理数据了。

转换方式

要将数据适配器转换为 IEnumerable,我们需要使用 DataTable 的 Rows 属性和 AsEnumerable 方法:

var rows = table.Rows.Cast<DataRow>();
var rows = table.AsEnumerable();

这样就可以将数据适配器中的数据转换为 IEnumerable 了。

注意事项

如果使用 AsEnumerable 方法来转换数据适配器,则需要添加 System.Data.DataSetExtensions 程序集的引用。

另外,在使用 LINQ 查询数据时,应该注意避免在查询中使用强制转换或查询非属于数据表的字段,这可能会导致运行时异常。