【问题标题】:Linq using variable as column name in select new statementLinq在select new语句中使用变量作为列名
【发布时间】:2014-01-10 15:15:26
【问题描述】:

我有一个 LINQ 查询,如您所见,我正在尝试使用变量作为列名。

string first = "someColumnName1";
string sec = "someColumnName2";
string third = "someColumnName3";

var data = (from i in ctx.PlanskaKalkulacijas
            where i.PKid.Value == id
            select new { first = i.NP1, sec = i.NP2, third = i.NP3}
           ).OrderByDescending(m => m.Id)
            .ToList();

此代码在 gridview 中生成列名作为第一、第二和第三,但我需要 someColumnName1、someColumnName2、someColumnName3。

有什么帮助吗?

【问题讨论】:

    标签: linq variables select


    【解决方案1】:

    插入数据后重命名网格视图中的列或命名您正确创建的匿名类型的属性。

    var data = (from i in ctx.PlanskaKalkulacijas 
                where i.PKid.Value == id 
                select new 
                { 
                    someColumnName1 = i.NP1, 
                    someColumnName2 = i.NP2, 
                    someColumnName3 = i.NP3
                }).OrderByDescending(m => m.Id)
                  .ToList();
    

    如果您在编译时不知道值,只需重命名即可。为此,请在此处关注this question。

    【讨论】:

    • 我怀疑问题作者在编译时实际上并不知道列名。 @zire - 如果你在编译时知道列名,你能澄清一下吗?
    • 是的 RB,我从 db 获得的列名,这些名称会有所不同。
    • @zire 好的,不仅仅是重命名标题。
    • 再次感谢 Ondrej 这行得通:protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { e.Row.Cells[0].Text = “日期”; } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    • 2013-02-20
    • 2021-06-25
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    相关资源
    最近更新 更多