我在嘗試將 SQL 查詢的結果顯示到我的 WPF 程式的文本框中時遇到問題。我的代碼如下所示:
private void btnCompare_Click(object sender, RoutedEventArgs e)
{
try
{
string commandText = "SELECT ID, FirstName, LastName, Email, City FROM ( SELECT ID, FirstName, LastName, Email, City FROM CompareTable UNION ALL SELECT MainTable.ID, MainTable.FirstName, MainTable.LastName, MainTable.Email, MainTable.City FROM MainTable ) CompareTable GROUP BY ID, FirstName, LastName, Email, City HAVING COUNT(*) = 1";
SqlConnection conn = new SqlConnection(connectionstring);
SqlCommand comm = new SqlCommand(commandText, conn);
conn.Open();
txtResult.Text = (string)comm.ExecuteScalar();
conn.Close();
}catch(Exception d)
{
MessageBox.Show(d.ToString());
}
}
當我在 Azure DB 中運行查詢時,我得到了我正在尋找的輸出。但是由于某種原因,結果輸出是一個 Int32 變數,這是我得到的錯誤:

有人可以解釋為什么輸出不是字串嗎?
uj5u.com熱心網友回復:
ExecuteScalar()回傳一個值,如果查詢回傳一個表,它是第一行的第一列。所以它試圖將第一個ID從整數“轉換”為字串并失敗。我懷疑你想要ExecuteReader,遍歷結果,并以某種方式構建一個字串。
或者您可以填充 aDataTable并從其行和列中獲取資料。這兩種方法都有很多例子。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/376745.html
上一篇:不斷收到System.Data.SqlClient.SqlException:'';'附近的語法不正確。
下一篇:將非CRUD方法路由到API端點
