当表中不存在值时,我们如何从表中获取null值

本文关键字:null 获取 不存在 我们 | 更新日期: 2023-09-27 17:58:43

try
{
    conn.Open();
    string query = "SELECT IGP_CODE FROM TBL_IGP_HEADER";
    SqlCommand cmd = new SqlCommand(query, conn);
    cmd.ExecuteNonQuery();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    da.Fill(dt);
    int value = (int)dt.Rows[0]["IGP_CODE"];
    if (value==null)
    {
        string myquery = "SELECT ISNULL(IGP_CODE,O) AS 'IGP_CODE' FROM TBL_IGP_HEADER";
        SqlCommand comd = new SqlCommand(myquery, conn);
        comd.ExecuteNonQuery();
        SqlDataReader dr = comd.ExecuteReader();
        dr.Read();
        int values = Convert.ToInt32(dr["IGP_CODE"]);
        textIGPNo.Text = values.ToString();
    }
    else
    {
        MessageBox.Show("Test");
    }
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}
textIGPDate.Text = DateTime.Now.ToShortDateString();
textIGPTime.Text = DateTime.Now.ToShortTimeString();

当表中不存在值时,我们如何从表中获取null值

由于已将变量Value初始化为Int,因此它不能包含Null。它将默认初始化为0。您可以检查dt。行==0

如果您想检查空值,请尝试使用

if(dt.Rows[0]["IGP_CODE"] == DBNull.Value)
{
    //your code goes here
}
else
{  
    //your code goes here
}

尽管如此,如果您必须将该列的值存储在变量中,请尝试使用可为null的类型,因为int无法处理null值

int? value = dt.Rows[0]["IGP_CODE"] as int?
 try
        {
            conn.Open();
            string myquery = "SELECT ISNULL(IGP_CODE,0) FROM TBL_IGP_HEADER";
            SqlCommand comd = new SqlCommand(myquery, conn);
            comd.ExecuteScalar();
            SqlDataAdapter da = new SqlDataAdapter(comd);
            DataTable dt = new DataTable();
            da.Fill(dt);
            string values = dt.Rows.Count.ToString();
            if (values == null)
            {
                textIGPNo.Text = values;
            }
            else
            {
                string myquery1 = "SELECT IGP_CODE FROM TBL_IGP_HEADER";
                SqlCommand cmd = new SqlCommand(myquery1, conn);
                cmd.ExecuteNonQuery();
                SqlDataAdapter daa = new SqlDataAdapter(cmd);
                DataTable dts = new DataTable();
                daa.Fill(dts);
                int value = dt.Rows.Count;
                int nvalue = value + 1;
                textIGPNo.Text = nvalue.ToString();
            }
       }
   catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }