2013-04-26 103 views
0

我在数据库中有一列,当用户搜索ID时,我想将其放入表中。我的想法是从查询结果中建立一个表格。 DB中的行可以有很多null,空字段和true/false。使用Linq对象属性构建表

我有查询,如下所示:

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没有明确将每一个? 数据库中的所有字段都是空的,我想要显示。

希望这是有道理的。

+0

为什么不使用数据绑定是要快速生成与我们的数据库表,和过滤结果喜欢你吗?想。 – devilkkw 2013-04-26 08:47:01

+0

你想检查所有的列或特定的? – noobob 2013-04-26 08:47:05

+0

检查所有的列 – StudentRik 2013-04-26 08:47:45

回答

0

首先,尽显表之前从QueryResult中删除所有你不想要的数据:

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

我会在运行查询后放置这个吗? – StudentRik 2013-04-26 08:52:38

+0

@StudentRik是的,但在填写表格之前。 属性是那些你想检查 – noobob 2013-04-26 09:29:53