2013-01-17 64 views
0

我是c#的新手 我正在使用winform c#。我有一個查詢結果的列值的總和。 總和設置爲label.text可見性,默認值爲0,即零我的代碼是如果從sql查詢輸出爲null,則將標籤值賦值爲零

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

另外:您在「AddWithValue」參數名稱中缺少「@」。 – HABO

回答

3

有很多事情你可以改變。例如您的查詢可以使用零和ISNULL (you can read more here)你不需要做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(); 
} 
+0

ISNULL(SUM(charge),0)先生你回答的作品。但是你能解釋一下嗎?這是什麼意思?它是如何工作的?它是一個SQL函數和? –

+0

是的,ISNULL是一個SQL方法,用於檢查一個值是否爲NULL,如果是,則用另一個值替換(在本例中爲0)。您可以使其返回-1或任何其他可以幫助的值。這很有用,因爲你的SQL語句變得更加複雜。我已添加鏈接到我的答案。 – Belogix

+0

謝謝先生非常感謝你,我不知道我的情況你可以解釋爲什麼我的空值在排序後沒有記錄,然後添加該記錄將導致0不爲null,因爲任何添加將導致最後0它永遠不會返回null,所以在我的情況下爲什麼它返回null? –

-1

改變我們的代碼就像...

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

...只需嘗試一下,讓我知道更多......

+0

rajesh bhai不是這樣。相同的空白輸出 –

+0

哦好的...確保背景顏色和標籤的前面顏色不一樣....也標籤可見=真。 –

+0

是的,先生它是相同的,但看到另一個人的答案,那麼你會得到什麼是真正的問題 –

相關問題