【问题标题】:Build Table with Linq object properties使用 Linq 对象属性构建表
【发布时间】:2013-04-26 16:50:03
【问题描述】:

我在数据库中有一个列,当用户搜索 ID 时,我想将其放入表中。我的想法是根据查询结果构建一个表。数据库中的行可以有很多null、空字段和真/假。

我的查询如下:

var searchQuery = Convert.ToInt32(txt_SearchId.Text);

var query = (from q in db.tblIncidents
                where q.Id == searchQuery
                select q).ToList();

我的第一个想法是检查查询中的每个项目以查看它是否匹配其类型以及条件是真还是假(无论它需要哪个),然后将其添加到表中。我觉得好像这是错误的方法,表格行有很多列。

foreach (var colitem in query)
      {
         if (colitem.victim != false)
            {
             headerRow.Cells.Add(thVictim);
             TableCell tcVictim = new TableCell {Text = colitem.victim.ToString()};
             row.Cells.Add(tcVictim);
             }
        *** and do the same for each column ***
       }

我想要做的是查看is null 列是否,如果没有,则将其添加到表中。 所以我在做类似的事情之后..

if(colitem.*property* != nulll)
  {
    row = new TableRow();
    TableCell c_Text = new TableCell();
    TableCell c_Value = new TableCell();
    tbl_Results.Rows.Add(row);
   }

有没有一种方法可以检查每个colitem 而无需显式添加每个colitem? 我想显示的数据库中的所有字段都可以为空。

希望这是有道理的。

【问题讨论】:

  • 为什么不使用数据绑定?必须快速生成与我们的数据库相关的表,并根据需要过滤结果。
  • 您要检查所有列还是特定列?
  • 检查所有列

标签: c# asp.net linq


【解决方案1】:

首先,在填充表格之前,从 queryResult 中删除所有不需要的数据:

queryResult.RemoveAll(p=> p.Property == null);

【讨论】:

  • 在我运行查询后我会放这个吗?
  • @StudentRik 是的,但在填满你的桌子之前。属性是您要检查的那些
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 2011-06-13
相关资源
最近更新 更多