I am writing a C# WPF application with controls bound to a MySQL 5.5 database. I'm populating a DataTable
using a MySqlDataAdapter
, passing in a MySQL SELECT query.
When the query is something trivial, like SELECT * FROM People
or SELECT LastName, FirstName, PersonID FROM People
, all is well and my ListBox
control ends up populated with the expected names.
When the query contains a fairly simple CONCAT
operator, though, the query silently fails and the ListBox
stays empty. In particular neither of the following have worked, even though both work fine from within the MySQL command line.
SELECT CONCAT(LastName, FirstName) as Name FROM People
SELECT CAST(CONCAT(LastName, FirstName) AS CHAR) as Name FROM People
Both LastName
and FirstName
are defined as VARCHAR
. So, I wouldn't expect this to be an instance of CONCAT
returning a binary string in any case. I mention that because it appears to have been the problem for similar issues that other folks have mentioned.
I'd imagine the DataAdapter attempts to parse your query into an internal format so that it can do things like generate Update and Insert commands.
Can you fill your datatable using a MySqlDataReader
instead? This is probably only helpful if you are not planning to do database updates with the DataTable
Going from memory...
MySqlCommand cmd = new MySqlCommand(query, connection);
MySqlDataReader reader = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.