我有数据表,其中包含Amount,StartDate等列。我试图根据StartDate从Amount中获取特定金额值。
我的代码如下:
DataTable dtt =_dstt.Tables[0];
var res = from r in dtt.AsEnumerable()
where r.Field("StartDate") == Convert.ToDateTime(drpStartYear.SelectedValue));
select r.Field("Amount");
我收到以下错误:
方法的类型参数 'System.Data.DataRowExtensions.Field(System.Data.DataRow,int)' 无法从使用中推断出来。尝试指定类型参数 明确。
_dsst是我从数据库填充的DataSet。
有更好的方法吗?
答案 0 :(得分:2)
这样做
DataTable dtt =_dstt.Tables[0];
var res = from r in dtt.AsEnumerable()
where r.Field<DateTime>("StartDate") == Convert.ToDateTime(drpStartYear.SelectedValue));
select r.Field<Double>("Amount");
您需要指定列的数据类型,如r.Field<YourType>("ColumnName")
答案 1 :(得分:1)
DataTable dtt =_dstt.Tables[0];
var res = from r in dtt.AsEnumerable()
where r.Field<type>("StartDate") == Convert.ToDateTime(drpStartYear.SelectedValue));
select r.Field<type>("Amount");
输入&lt;&gt;将是您正在使用的参数类型
答案 2 :(得分:0)
var res = from r in dtt.AsEnumerable()
where r.Field<DateTime>("StartDate") == Convert.ToDateTime(drpStartYear.SelectedValue));
select r.Field<double>("Amount");