【问题标题】:C# Display SQL output into textboxC# 将 SQL 输出显示到文本框中
【发布时间】:2022-01-13 15:22:54
【问题描述】:

我在尝试将 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 变量,这是我得到的错误:

谁能解释为什么输出不是字符串?

【问题讨论】:

    标签: c# sql wpf


    【解决方案1】:

    ExecuteScalar() 返回单个值,如果查询返回表,则该值是第一行的第一列。所以它试图将第一个 ID 从整数“转换”为字符串并失败。我怀疑你想要ExecuteReader,而是循环遍历结果,并以某种方式构建一个字符串。

    或者您可以填写DataTable 并从其中的行和列中获取数据。这两种方法都有很多例子。

    【讨论】:

    • 嗯,有道理,我应该对此进行更多研究。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 2016-01-25
    相关资源
    最近更新 更多