-1

我想检查我在 datagridview 中的“多”列是否为空。

这是我的代码

        for (int i = 0; i < (gridx.Rows.Count - 1); i++)
        {
            col = gridx.Rows[i].Cells["code"].Value.ToString();
            col4 = gridx.Rows[i].Cells["many"].Value.ToString();                
        }

        if (col4 == "")
        {
            MessageBox.Show("Many is empty");
            this.Focus();
            return;
        } 
        else
        {
          //my code in here
        }

但它不显示错误“很多是空的”

请帮助我..并在此之前感谢

4

3 回答 3

5

由于您col4在 for 循环中分配了最后一个单元格值,因此您可以检查它是否为空。

for (int i = 0; i < (gridx.Rows.Count - 1); i++)
        {
            col = gridx.Rows[i].Cells["code"].Value.ToString();
            if(gridxRows[i].Cells["many"].Value == null ||       
               gridxRows[i].Cells["many"].Value == string.Empty)
             {
                col4 = gridx.Rows[i].Cells["many"].Value.ToString();
             }
         }

您当前的代码只会检查最后一行是否cell["many"]为空。如果您想确保所有列都是空的,那么您可以尝试以下方法。

bool isColumnEmpty = true;
for (int i = 0; i < (gridx.Rows.Count - 1); i++)
        {
            col = gridx.Rows[i].Cells["code"].Value.ToString();
            if(gridxRows[i].Cells["many"].Value == null ||       
               gridxRows[i].Cells["many"].Value == string.Empty)
             {
                col4 = gridx.Rows[i].Cells["many"].Value.ToString();
                isColumnEmpty = false; // that means some thing is found against cell
             }
         }

现在检查是否设置了 isColumnEmpty 标志;

if(isCoulmnEmpty)
{
            MessageBox.Show("Many is empty");
            this.Focus();
            return;
}
于 2012-06-15T09:13:11.507 回答
1

试试这个。

if(gridx.Rows[i].Cells["code"].Value == null)
{
// do something here...
}

问候, 莎米拉

于 2012-06-15T09:05:52.580 回答
0

如果您使用databindingto populate datagrid,我建议您“询问”有关您搜索的值(或者更好地不存在这些值)的数据。

如果您在 UI 上搜索,在这种情况下,根据您的帖子,如果永远不会运行,我会看到 2 个选项:

  • 或者一些价值,所以它不是空的
  • 或值不是""(空字符串),而是null. 要检查这一点,这样写就足够了:

if (col4 == null)

只是建议:使用强大的调试工具,Visual Studio并会在几分钟内自己找出答案。

祝你好运。

于 2012-06-15T09:09:05.720 回答