Null Value in DataGridView

本文关键字:DataGridView in Value Null | 更新日期: 2023-09-27 18:26:44

如何在C#中检查DataGridView中的空单元格值?我已经使用DBNull进行检查,但它不起作用,并且我得到了"Object Reference not Set to a Instance of a Object"错误。我正在使用VS2010。

有人能帮我吗?

DateGridView具有以下属性:名称:dgTelFaxAllowUserToAddRows:TrueAllowUserToDeleteRows:True

我目前拥有的代码是:

            DataSet objDSTelephone = new DataSet();
            DataTable objDTTelephone = objDSTelephone.Tables.Add();
            string strTelephoneID = "";
            string strTelephone = "";
            int intRecTel = dgTelFax.Rows.Count;
            if (intRecTel > 0)
            {
                //-- Add columns to the data table
                objDTTelephone.Columns.Add("id", typeof(string));
                objDTTelephone.Columns.Add("telephone", typeof(string));
                for (int i2 = 0; i2 <= intRecTel - 1; i2++)
                {
                    strTelephoneID = (!DBNull.Value.Equals(dgTelFax.Rows[i2].Cells[0].Value)) ? dgTelFax.Rows[i2].Cells[0].Value.ToString() : "";
                    strTelephone = (!DBNull.Value.Equals(dgTelFax.Rows[i2].Cells[2].Value)) ? dgTelFax.Rows[i2].Cells[2].Value.ToString() : "";
                    objDTTelephone.Rows.Add(strTelephoneID, strTelephone);
                }
            }

提前感谢!!

Null Value in DataGridView

在这种情况下,您的dgTelFax不包含DBNull.Value,而是简单的null。为了测试这一点,你可以写:

strTelephoneID = (dgTelFax.Rows[i2].Cells[0].Value ?? string.Empty).ToString();
strTelephone = (dgTelFax.Rows[i2].Cells[2].Value ?? string.Empty).ToString();

若DataSource中的列类型是字符串,那个么只需说:就足够了

strTelephoneID = (string)dgTelFax.Rows[i2].Cells[0].Value;
strTelephone = (string)dgTelFax.Rows[i2].Cells[2].Value;

但问题是,为什么不将数据网格绑定到objDTTelephone?那么您就不需要自己传输数据了。

在获取单元格值之前,请检查单元格值:

if(!string.IsNullOrEmpty(dgTelFax.Rows[2].Cells[0].Value) {
    strTelephoneID = dgTelFax.Rows[2].Cells[0].Value.Tostring();
}