Convert Or Cast MySQL Database Column Collation In SQL Code And C#
Software Used: Mysql 5.0 connector/Visual Studio 2010
We encounter a tricky problem when showing mysql database column value with collation of typelatin1_swedish_ci. The value retrieved from the column and shown on a c# string variable is not the same with what is in the database. The ascii characters has been stripped off in the string variable.
Here is a string variable with special character apostrophe stored in a column with latin1swedish collation.
Ex. Take on bank robbers, beat the bad guys or shoot it out with the police in the quest for freedom – all in the name of fun! Doesn’t sound like your average day out, but today we’re making this happen!
Sample C# Implementation
We encounter a tricky problem when showing mysql database column value with collation of typelatin1_swedish_ci. The value retrieved from the column and shown on a c# string variable is not the same with what is in the database. The ascii characters has been stripped off in the string variable.
Here is a string variable with special character apostrophe stored in a column with latin1swedish collation.
Ex. Take on bank robbers, beat the bad guys or shoot it out with the police in the quest for freedom – all in the name of fun! Doesn’t sound like your average day out, but today we’re making this happen!
string sql = "select convert(description using utf8) as description from your_table where id='554be79124998120b8c3505d47c88c2d'";
private void TestDeals() { DataTable dt = new DataTable(); string conn_s = ConfigurationManager.AppSettings["LocalDB"]; string sql = "select convert(description using utf8) as description from your_table where id='554be79124998120b8c3505d47c88c2d'"; MySqlConnection conn = null; ASCIIEncoding ascii = new ASCIIEncoding(); try { conn = new MySqlConnection(conn_s); conn.Open(); MySqlCommand cmd = new MySqlCommand(sql, conn); MySqlDataAdapter da = new MySqlDataAdapter(cmd); da.Fill(dt); //IDataReader read = cmd.ExecuteReader(); //dt.Load(read, LoadOption.PreserveChanges); string desc = dt.Rows[0]["description"].ToString(); MessageBox.Show(desc); } catch (Exception ex) { throw; } finally { conn.Close(); } }
Comments
Post a Comment