如果sql查询的输出为null,则将标签值指定为零

时间:2013-01-17 14:34:41

标签: c#

我是c#的新手 我正在研究winform c#。我有一个查询,导致列值的总和。 sum设置为label.text可见性,默认值为0,即我的代码为

    string interoo = "select sum(charge) from table2 
where datepart(mm,given_schedule)= @yourMonthSelected and 
datepart(yy,given_schedule)= @yourYearSelected";

问题是当没有搜索结果意味着输出什么都没有那么turnover.text被设置为null意味着在winform中它是不可见的文本是blanlk我认为它返回dbnull值但是如何设置它如果未找到搜索结果,则为0。如果找到搜索结果,那么它将是相同的,但如果它是空白,那么我不希望它是空白它应该是0.它可以吗?

2 个答案:

答案 0 :(得分:3)

你可以改变各种各样的东西。例如,您的查询可以使用ISNULL (you can read more here)强制ZERO,如果只返回一个项目,则不需要执行while

string interoo = "SELECT ISNULL(SUM(charge), 0) FROM table2 WHERE datepart(mm,given_schedule)= @yourMonthSelected AND datepart(yy,given_schedule)= @yourYearSelected";

SqlCommand cmdd = new SqlCommand(interoo, conn);
cmdd.Parameters.AddWithValue("yourMonthSelected", comboBox1.Text);
cmdd.Parameters.AddWithValue("yourYearSelected", comboBox2.Text);
SqlDataReader rdrr = cmdd.ExecuteReader();

if (rdrr.Read())
{
    turnover.Text = rdrr[0].ToString();
}

答案 1 :(得分:-1)

将代码更改为......

if(rdrr.Read())
{
     turnover.Text = rdrr[0].ToString();
}
else 
{
    turnover.text = "0";
}

...试试这个,让我知道更多......