3

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

当查询是微不足道的事情时,比如SELECT * FROM Peopleor SELECT 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

LastName和都FirstName定义为VARCHAR。所以,无论如何,我都不希望这是一个CONCAT返回二进制字符串的实例。我提到这一点是因为它似乎是其他人提到的类似问题的问题。

4

1 回答 1

1

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

你可以用 aMySqlDataReader来填充你的数据表吗?这可能仅在您不打算使用DataTable

从记忆中走...

MySqlCommand cmd = new MySqlCommand(query, connection);
MySqlDataReader reader = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
于 2012-12-07T03:30:10.943 回答