如何将DataTable设置为可枚举
本文关键字:枚举 设置 DataTable | 更新日期: 2023-09-27 18:20:35
我有一个名为Pinfo的表。我想做的是使用Linq查询从数据库中提取记录并返回它。但我做不到。这就是我目前所拥有的。我怎样才能使这个工作
List<ProductInfo> getList()
{
List<ProductInfo> pi = new List<ProductInfo>();
using (SqlConnection con = new SqlConnection("server=.''sqlexpress;database=Project;User Id=sa;Password=1"))
{
con.Open();
using (SqlCommand cmd = new SqlCommand("select * from PInfo", con))
{
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
var query = from c in dt.AsEnumerable()
select new
{
id = c.Field<int>("Id"),
name = c.Field<string>("Name"),
price = c.Field<decimal>("Price")
};
adp.Fill(query);
}
}
return pi;
}
这样试试
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
return (from c in dt.AsEnumerable()
select new ProductInfo
{
id=c.Field<int>("Id"),
name=c.Field<string>("Name"),
price=c.Field<decimal>("Price")
}).ToList();
- 如果要返回
ProductInfos
的列表,则不应创建匿名类型 - 您不需要
SqlDataAdapter
,只需使用DataTable的Load
方法即可