C# 将 SQL 输出显示到文本框中

Posted

技术标签:

【中文标题】C# 将 SQL 输出显示到文本框中【英文标题】:C# Display SQL output into textbox 【发布时间】: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 变量,这是我得到的错误:

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

嗯,有道理,我应该对此进行更多研究。谢谢!

以上是关于C# 将 SQL 输出显示到文本框中的主要内容,如果未能解决你的问题,请参考以下文章

将下拉菜单中的相关信息显示到文本框中(来自 SQL 数据库,使用 PHP、AJAX 和 HTML)

在启动 C# .NET 时将文本加载到文本框中

如何在复选框打勾时将一个文本框中输入的数据显示到另一个文本框?

C#:更改文本框中的数字

如何通过 C# ASP.net 从 SQL Server 中的文本框中存储日期

vb怎么把结果输出到文本框里?