无法将 System.DBNull 类型的对象强制转换为 System.String 类型
本文关键字:类型 System String 转换 DBNull 对象 | 更新日期: 2023-09-27 18:34:22
在我的数据库中,我有 6 列,它们都允许空值。我想要制作具有更新功能的简单表单。
产品,SNO,BTCH到期,数量,费率和金额。
我得到一个例外:
无法将类型为"System.DBNull"的对象强制转换为类型"System.String"
这是我的代码:
int a = dataGridView1.CurrentCell.RowIndex;
try
{
using (AmdDataSet.Test_ibrahimDataTable table = new AmdDataSet.Test_ibrahimDataTable())
{
int b = a+1;
using (AmdDataSetTableAdapters.Test_ibrahimTableAdapter adp = new AmdDataSetTableAdapters.Test_ibrahimTableAdapter())
{
adp.GetDataBySNO(a);
AmdDataSet.Test_ibrahimRow erow;
erow = table.NewTest_ibrahimRow();
lblSNO.Text = erow.SNO.ToString();
txtProduct.Text= erow.PRODUCTS;
txtExpiry.Text = erow.EXPIRYDATE.ToShortDateString();
txtBatchNo.Text = erow.BATCHNO.Trim().ToString();
}
}
}
catch (Exception ex)
{
lbleror.Text = ex.Message;
}
试试这个
lblSNO.Text = (erow.SNO == null) ? string.Empty : erow.SNO.ToString()
或
lblSNO.Text = (erow.SNO == DBNull.Value) ? string.Empty : erow.SNO.ToString()
看看这个类似的处理 DBNulls 的例子
在调用ToString
方法之前,请调用Convert.IsDBNull
以检查值是否不为空。