【问题标题】:Using CONCAT in a MySQL query from .NET在 .NET 的 MySQL 查询中使用 CONCAT
【发布时间】:2012-11-25 05:43:51
【问题描述】:

我正在编写一个带有绑定到 MySQL 5.5 数据库的控件的 C# WPF 应用程序。我正在使用 MySqlDataAdapter 填充 DataTable,并传入 MySQL SELECT 查询。

当查询是微不足道的,比如SELECT * FROM PeopleSELECT LastName, FirstName, PersonID FROM People,一切都很好,我的ListBox 控件最终填充了预期的名称。

但是,当查询包含一个相当简单的 CONCAT 运算符时,查询会静默失败并且 ListBox 保持为空。特别是以下都没有工作,即使两者都可以在 MySQL 命令行中正常工作。

SELECT CONCAT(LastName, FirstName) as Name FROM People
SELECT CAST(CONCAT(LastName, FirstName) AS CHAR) as Name FROM People

LastNameFirstName 都定义为 VARCHAR。所以,我不希望这是CONCAT 在任何情况下返回二进制字符串的实例。我提到这一点是因为它似乎是其他人提到的类似问题的问题。

【问题讨论】:

    标签: c# mysql concat


    【解决方案1】:

    我想 DataAdapter 会尝试将您的查询解析为内部格式,以便它可以执行诸如生成更新和插入命令之类的操作。

    您可以使用MySqlDataReader 来填充您的数据表吗?这可能仅在您不打算使用 DataTable 进行数据库更新时才有用

    凭记忆...

    MySqlCommand cmd = new MySqlCommand(query, connection);
    MySqlDataReader reader = cmd.ExecuteReader();
    DataTable dt = new DataTable();
    dt.Load(reader);
    

    【讨论】:

    • 是的,这行得通。请注意,连接必须在调用 ExecuteReader 之前显式打开(与数据适配器不同)。
    猜你喜欢
    • 2011-09-01
    • 2011-05-29
    • 2015-12-24
    • 2013-05-16
    • 1970-01-01
    • 2015-07-20
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多