在.NET中使用CONCAT函数进行MySQL查询

3
我正在编写一个使用C#的WPF应用程序,该应用程序中的控件与MySQL 5.5数据库绑定。我使用MySqlDataAdapter传入MySQL SELECT查询来填充DataTable
当查询是一些微不足道的东西时,比如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

姓和名都被定义为VARCHAR。因此,在任何情况下,我不认为这是CONCAT返回二进制字符串的实例。我提到这一点是因为它似乎是其他人提到的类似问题的问题。

1个回答

1
我想DataAdapter会尝试将您的查询解析为内部格式,以便可以执行诸如生成Update和Insert命令之类的操作。
您能否使用MySqlDataReader填充datatable?如果您不打算使用DataTable进行数据库更新,则这可能只有帮助作用。
从记忆中推断...
MySqlCommand cmd = new MySqlCommand(query, connection);
MySqlDataReader reader = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);

没错,这个可行。只是需要注意,在调用ExecuteReader之前必须显式打开连接(与数据适配器不同)。 - Mike Woolf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接