linq生成的数据集合在datalist中的应用问题
用linq生成的数据集合,在datalist控件中ItemDataBound事件中,想把数据集中的数字用文字表示。
如:
var info = from o in db.table select new {o.field1, o.field2};
在datalist的ItemDataBound事件中:
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView rv = (DataRowView)e.Item.DataItem;
if (int.Parse(rv["field1"].ToString()) == 0)
{
Label lblResult = (Label)e.Item.FindControl("lblResult");
lblResult.Text = "正常";
}
else
{
Label lblResult = (Label)e.Item.FindControl("lblResult");
lblResult.Text = "失败";
}
}
如果用sql生成dataset,这样就不会出错,但是用linq就会出错:
DataRowView rv = (DataRowView)e.Item.DataItem;
这一句就会出错:
无法将类型为“<>f__AnonymousType0`9[]”的对象强制转换为类型“System.Data.DataRowView”。
这个用linq该怎么做呢?