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

ebb*_*sku 0 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;
            }
Run Code Online (Sandbox Code Playgroud)

Bla*_*hma 5

尝试这个

lblSNO.Text = (erow.SNO == null) ? string.Empty : erow.SNO.ToString()
Run Code Online (Sandbox Code Playgroud)

要么

lblSNO.Text = (erow.SNO == DBNull.Value) ? string.Empty : erow.SNO.ToString() 
Run Code Online (Sandbox Code Playgroud)

  • 其实第二种选择会起作用 (2认同)