无法将System.DBNull类型的对象强制转换为System.String类型

时间:2012-05-17 07:52:02

标签: c# gridview

在我的数据库中,我有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;
            }

3 个答案:

答案 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之前,检查值是否为空。