我是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.它可以吗?
答案 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";
}
...试试这个,让我知道更多......