2013-07-03 126 views
-1

我試圖在消息框中顯示SQL查詢的結果,但我無法使其工作。在消息框中顯示SQL結果

這是我的代碼:

SqlConnection CN = new SqlConnection(constring); 
DataTable dt = new DataTable(); 
CN.Open(); 
SqlDataAdapter sda = new SqlDataAdapter("select (Table_MAL_MEZANYAMASROF.MOKHASASMEZANYA- sum (MAL_ERTEBAT.MONY)) as 'debit' from Table_MAL_MEZANYAMASROF,MAL_ERTEBAT where Table_MAL_MEZANYAMASROF.BANDNO=MAL_ERTEBAT.BANDNO and MAL_ERTEBAT.BANDNO= '" + EdkhalBayanto.txtBandNo.Text + "'and MAL_ERTEBAT.BANDNAME = '" + EdkhalBayanto.txtBandName.Text + "' group by Table_MAL_MEZANYAMASROF.MOKHASASMEZANYA", CN); 
sda.Fill(dt); 
MessageBox.Show(dt); 
+2

而異常或錯誤訊息? –

+0

你想在這裏展示。 'Datatable'? –

+1

如果您從此查詢中獲得多個結果,該怎麼辦? MessageBox仍然是將這些結果輸出給用戶的正確方法嗎?請考慮這一點。 – 2013-07-03 08:31:50

回答

2

如果你確定這個查詢將在數據表中只返回一行與一列,你可以試試這個

MessageBox.Show(dt.Rows[0][0].ToString()); 
+0

謝謝你Rajeev Kumar,它的工作原理 – user2536447

0

如果你只有一個結果,嘗試這個:

SqlConnection CN = new SqlConnection(constring); // declare connection as CN 
string Query = "select (Table_MAL_MEZANYAMASROF.MOKHASASMEZANYA- sum (MAL_ERTEBAT.MONY)) as 'debit' from Table_MAL_MEZANYAMASROF,MAL_ERTEBAT where Table_MAL_MEZANYAMASROF.BANDNO=MAL_ERTEBAT.BANDNO and MAL_ERTEBAT.BANDNO = @BandNo and MAL_ERTEBAT.BANDNAME = @BandName group by Table_MAL_MEZANYAMASROF.MOKHASASMEZANYA" // declare query as string Query 
CN.Open(); // open connection 
using (var cmd = new SqlCeCommand(Query, CN)) // initialize a new SQL command 
{ 
    cmd.Parameters.Add("@BandNo", SqlDbType.NVarChar, 100); 
    cmd.Parameters.Add("@BandName", SqlDbType.NVarChar, 100); 
    cmd.Parameters["BandNo"].Value = EdkhalBayanto.txtBandNo.Text; 
    cmd.Parameters["BandName"].Value = EdkhalBayanto.txtBandName.Text; 
    result = (string) cmd.ExecuteScalar(); // returns the first row of the first column, ignores everything else 
} 
CN.Close(); // close connection 
MessageBox.Show(result); // show the result in a messagebox 

請注意這是如何使用參數,而不是定義查詢本身的所有內容。您可能必須自己編輯參數。