2013-07-03 80 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 

请注意这是如何使用参数,而不是定义查询本身的所有内容。您可能必须自己编辑参数。