C# “得到例外”;枚举尚未开始或已完成";尝试从数据集获取列时
我正在尝试使用linq过滤数据集。它工作得很好 问题: 但我试着从这里得到这个列,它给了我一个例外 枚举尚未开始或已完成。 这是我的密码:C# “得到例外”;枚举尚未开始或已完成";尝试从数据集获取列时,c#,linq-to-sql,C#,Linq To Sql,我正在尝试使用linq过滤数据集。它工作得很好 问题: 但我试着从这里得到这个列,它给了我一个例外 枚举尚未开始或已完成。 这是我的密码: foreach (string columnName in SelectedItems) { var Rate = (from dr in ds.Tables[0].AsEnumerable() where dr.Field
foreach (string columnName in SelectedItems)
{
var Rate = (from dr in ds.Tables[0].AsEnumerable()
where dr.Field<double>(columnName) > greater && dr.Field<double>(columnName) < less
select new
{
rate = dr.Field<double>(columnName)
}.rate).ToList();
if (Rate.Count > 50)
{
var avg = Rate.CheckRateValue();
}
i++;
}
foreach(SelectedItems中的字符串columnName)
{
var Rate=(来自ds.Tables[0]中的dr.AsEnumerable()
其中dr.Field(columnName)>较大值和dr.Field(columnName)<较小值
选择新的
{
速率=dr.字段(columnName)
}.rate);
如果(速率计数>50)
{
var avg=速率。CheckRateValue();
}
i++;
}
我在web上搜索并发现dr.Field(columnName)必须一次性使用的问题。因此,在从“选择新”部分跳过此代码后,如何从linq查询中获取列。我不确定这是否是您的实际问题,但您可以尝试:
var rates = (from dr in ds.Tables[0].AsEnumerable()
let rate = dr.Field<double>(columnName)
where rate > greater && rate < less
select rate).ToList();
var rates=(来自ds.Tables[0]中的dr.AsEnumerable()
let rate=dr.Field(columnName)
其中速率>较大值和速率<较小值(&R)
选择rate).ToList();
我不确定这是您的实际问题,但您可以尝试:
var rates = (from dr in ds.Tables[0].AsEnumerable()
let rate = dr.Field<double>(columnName)
where rate > greater && rate < less
select rate).ToList();
var rates=(来自ds.Tables[0]中的dr.AsEnumerable()
let rate=dr.Field(columnName)
其中速率>较大值和速率<较小值(&R)
选择rate).ToList();
当我将查询更改为var Rate=(来自boundTable.AsEnumerable()中的dr)时,如果选择新的{Rate=dr.Field(columnName),那么它就可以工作了,而不是ds.Tables[0]。AsEnumerable()
您可以ds.Tables[0]…AsEnumerable().ToList()
?当我将查询更改为var Rate=(来自boundTable.AsEnumerable()中的dr)时,是否确实没有从itteratingSelectedItems
中得到错误?如果我将查询更改为var Rate=(来自boundTable.AsEnumerable(),请选择新的{Rate=dr.Field(columnName),然后它就可以工作了,而不是ds.Tables[0]。AsEnumerable()
ds.Tables[0]…AsEnumerable().ToList()?您能确认错误出现在哪一行吗?当您单步执行此代码时,它会执行并在foreach完成后得到错误,还是发生在代码中的特定行上?当我将查询更改为var Rate=(来自boundTable.AsEnumerable()中的dr)选择新{rate=dr.Field(columnName)那么它可以工作了吗?您可以确认错误出现在哪一行吗?当您单步执行此代码时,它是否执行并在foreach完成后得到错误,还是发生在代码中的特定行上?当我将查询更改为var Rate=(来自boundTable.AsEnumerable()中的dr)选择new{rate=dr.Field(columnName),它就会工作