0

私はc#の初心者です。winformc#に取り組んでいます。そして、列の値の合計をもたらすクエリがあります。合計は可視性のために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ではテキストが表示されていないことを意味します。検索結果が見つかりました。検索結果が見つかった場合は同じになりますが、空白の場合は空白にしたくありません。0にする必要があります。可能ですか?

4

2 に答える 2

3

変更できるものはいろいろあります。たとえば、クエリでISNULLを使用してゼロを強制することができ(詳細はここで読むことができます)while 、 1つのアイテムのみが返される場合は行う必要はありません。

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();
}
于 2013-01-17T14:42:39.783 に答える
-1

次のようなurコードを変更します...

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

...これを試して、さらに知らせてください...。

于 2013-01-17T14:43:01.863 に答える