1

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

3 回答 3

5

试试这个

lblSNO.Text = (erow.SNO == null) ? string.Empty : erow.SNO.ToString()

或者

lblSNO.Text = (erow.SNO == DBNull.Value) ? string.Empty : erow.SNO.ToString() 
于 2012-05-17T07:55:23.993 回答
3

看看这个类似的例子来处理 DBNulls

于 2012-05-17T08:09:23.557 回答
2

在调用ToString方法调用之前Convert.IsDBNull检查值是否不为空。

于 2012-05-17T07:55:16.493 回答