【发布时间】:2010-02-06 12:29:33
【问题描述】:
大家好,
我正在使用 VS 2008 重新设计我的个人网站,并选择使用 LINQ 通过数据访问层创建。我网站的一部分将是一个小应用程序,以帮助更好地管理我的预算。我的第一个 LINQ 查询确实成功执行并显示在 GridView 中,但是当我尝试使用 RowDataBound 事件来处理结果并稍微改进它们时,我得到了错误:
找不到类型或命名空间名称“
var”(您是否缺少 using 指令或程序集引用?)
这个有趣的部分是,如果我只是尝试在同一个文件中的其他任何地方输入var s = "s";,我也会得到同样的错误。如果我转到 web 项目中的其他文件,var s = "s"; 编译正常。
这是 LINQ 查询调用:
public static IQueryable pubGetRecentTransactions(int param_accountid)
{
clsDataContext db;
db = new clsDataContext();
var query = from d in db.tblMoneyTransactions
join p in db.tblMoneyTransactions on d.iParentTransID equals p.iTransID into dp
from p in dp.DefaultIfEmpty()
where d.iAccountID == param_accountid
orderby d.dtTransDate descending, d.iTransID ascending
select new
{
d.iTransID,
d.dtTransDate,
sTransDesc = p != null ? p.sTransDesc : d.sTransDesc,
d.sTransMemo,
d.mTransAmt,
d.iCheckNum,
d.iParentTransID,
d.iReconciled,
d.bIsTransfer
};
return query;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.prvLoadData();
}
}
internal void prvLoadData()
{
prvCtlGridTransactions.DataSource = clsMoneyTransactions.pubGetRecentTransactions(2);
prvCtlGridTransactions.DataBind();
}
protected void prvCtlGridTransactions_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
var datarow = e.Row.DataItem;
var s = "s";
e.Row.Cells[0].Text = datarow.dtTransDate.ToShortDateString();
e.Row.Cells[1].Text = datarow.sTransDesc;
e.Row.Cells[2].Text = datarow.mTransAmt.ToString("c");
e.Row.Cells[3].Text = datarow.iReconciled.ToString();
}//end if
}//end RowDataBound
到目前为止,我的谷歌搜索还没有找到一个好的答案,所以我把它交给了这个值得信赖的社区。感谢您抽出宝贵时间为我提供帮助。
【问题讨论】:
-
这是一个网站项目还是网络应用项目?
标签: c# linq-to-sql data-binding gridview anonymous-types