2016-05-17 75 views
0

我正在尝试对特定列上的行进行计数。我在我的数据网格表上有这些数据。C#如何统计数据网格表上特定列的行数

日期---------- ------------ TimeIn超时

05/16/2016 --- 08:00:00 AM --  05:00:00 PM 

05/16/2016 --- 08:00:00 AM -- 

我用

lblCount.Text = DataGridTable1.RowCount.ToString(); 

和输出是2.

我如何计算列TimeOut的行数?就像这样,如果我对TimeOut列没有任何价值,那么这行不会被计算在内。

所以输出将是1.

欣赏帮助。谢谢。

回答

1

一种解决方案可能是计数非空的单元格循环通过列值,我们可以使用如下的Linq来执行此操作。

int count = dataGridView1.Rows 
    .Cast<DataGridViewRow>() 
    .Select(row => (string)row.Cells["TimeOut"].Value) 
    .Where(v => !string.IsNullOrEmpty(v)) 
    .Count(); 
+0

我一直在寻找这个答案,对于一些是时候了。所以我做了什么,我把它转换成了字符串,这样我的标签就可以读取它。非常感谢。非常感谢您的帮助。 –

0

你可能必须通过所有的行进行迭代,并计算你所需的列的列

像如下:

foreach (DataGridViewRow rw in this.dataGridView1.Rows) 
    { 

     if (rw.Cells["TimeOut"].Value == null || rw.Cells["TimeOut"].Value == DBNull.Value || String.IsNullOrWhitespace(rw.Cells["TimeOut"].Value.ToString()) 
     { 
     // here increase your counter 
     } 

    } 

ref link

相关问题