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);
}
}
提前感谢!!
在这种情况下,您的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();
}