在我的数据库中,我有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;
}
答案 0 :(得分:4)
试试这个
lblSNO.Text = (erow.SNO == null) ? string.Empty : erow.SNO.ToString()
或
lblSNO.Text = (erow.SNO == DBNull.Value) ? string.Empty : erow.SNO.ToString()
答案 1 :(得分:3)
答案 2 :(得分:2)
在调用ToString
方法调用Convert.IsDBNull
之前,检查值是否为空。