无法将 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;
            }

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

试试这个

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以检查值是否不为空。

相关文章: