使用c#检查gridview是否为空

时间:2013-08-23 07:51:28

标签: c# .net winforms gridview

目前我有以下内容:

if (dataGridView1.Rows.Count == 0)
{
    MessageBox.Show("EMPTY");
}
else
{
    using (var soundPlayer = new SoundPlayer(@"c:\Windows\Media\chimes.wav"))
    {
        soundPlayer.Play(); // can also use soundPlayer.PlaySync()
    }
}

我的网格视图如下所示:

enter image description here

但它似乎转到了else语句并发出声音。如果gridview的行中没有数据,我需要它才能发出声音。

3 个答案:

答案 0 :(得分:5)

根据评论,你有:

dataGridView1.DataSource = BS;

其中BS为BindingSource,因此您可以使用其BindingSource.Count属性。

所以代码中的某个地方:

var bindingSource = dataGridView1.DataSource as BindingSource; 
if(bindingSource.Count == 0) {
  MessageBox.Show("EMPTY");
}

答案 1 :(得分:1)

你也可以在填充gridview时检查这个..像这样

DataSet studentsList = students.GetAllStudents(); 
bool empty = IsEmpty(studentsList); 
if(empty) { 
MessageBox.Show("EMPTY"); 
} 
else { 
using (var soundPlayer = new SoundPlayer(@"c:\Windows\Media\chimes.wav"))
{ 
soundPlayer.Play(); 
} 
}

答案 2 :(得分:0)

您可以使用函数GetCellCount()获取单元格计数。它需要一个名为DataGridViewElementStates.Selected

的参数

示例:

 if (this.myGridView.GetCellCount(DataGridViewElementStates.Selected) > 0)
        {
            //Do sth
        }
        else
        {
            //Show message
        }

优点是您无需运行数据库查询即可使用上述功能检查条件。 更多详细信息:https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.datagridview.getcellcount