1

私のデータベースには 6 つの列があり、それらはすべて null 値を許可しています。更新機能付きの簡単なフォームを作りたいです。

製品、SNO、BTCH 有効期限、QTY、RATE、および金額。

例外があります:

タイプ '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

DBNull を処理するためのこの同様の例を見てください。

于 2012-05-17T08:09:23.557 に答える
2

ToStringメソッド呼び出しを呼び出す前Convert.IsDBNullに、値が null でないかどうかを確認します。

于 2012-05-17T07:55:16.493 に答える