Tive um problema ao converter um valor de uma consulta no MySql.
Meu código estava retornando System.Byte[].
using (MySqlConnection conn = new MySqlConnection(connectionstring))
{
string sql = @"SELECT username, nome FROM users
UNION
SELECT username, nome FROM clients";
MySqlCommand cmd = new MySqlCommand(sql, conn);
conn.Open();
MySqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Response.Write(Convert.ToString(dr["username"]));
}
conn.Close();
}
Ai descobri que, quando o MySql une dois tipos de dados diferentes, pode retornar System.Byte[]
Então para resolver este problema, bastou trocar o Convert.ToString(dr["username"])) para dr.GetString("username").
using (MySqlConnection conn = new MySqlConnection(connectionstring))
{
string sql = @"SELECT username, nome FROM users
UNION
SELECT username, nome FROM clients";
MySqlCommand cmd = new MySqlCommand(sql, conn);
conn.Open();
MySqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Response.Write(dr.GetString("username"));
}
conn.Close();
}