开发环境:
vs 2008+easyphp5.3.0+win7
问题描述:在Mysql中插入的中文显示为问号,读出也显示为问号
C#访问数据库用的组件是MySql.Data.dll(5.0.8.1)
测试用建表代码如下(注意建库的时候把整理改成utf8_general_ci):
CREATE TABLE TT (
id smallint(6) NOT NULL DEFAULT '1',
name varchar(64) NOT NULL,
descr varchar(64) DEFAULT NULL,
PRIMARY KEY (id)
)
id smallint(6) NOT NULL DEFAULT '1',
name varchar(64) NOT NULL,
descr varchar(64) DEFAULT NULL,
PRIMARY KEY (id)
)
插入测试数据代码:
insert into config TT('4','呵呵','哈哈')
C#程序代码:
查询部分代码
MySqlConnection con = new MySqlConnection("server=127.0.0.1;uid=root;pwd=;database=test;Charset=utf8");
con.Open();
DataSet ds = new DataSet();
MySqlDataAdapter adp = new MySqlDataAdapter("select * from TT",con);
adp.Fill(ds);
con.Close();
dataGridView1.DataSource = ds.Tables[0];
con.Open();
DataSet ds = new DataSet();
MySqlDataAdapter adp = new MySqlDataAdapter("select * from TT",con);
adp.Fill(ds);
con.Close();
dataGridView1.DataSource = ds.Tables[0];
插入部分代码:
插入部分代码
MySqlConnection con = new MySqlConnection("server=127.0.0.1;uid=root;pwd=;database=test;Charset=utf8");
con.Open();
string sql = "insert into config TT('4','呵呵','哈哈')";
MySqlCommand cmd = new MySqlCommand(sql,con);
cmd.ExecuteNonQuery();
con.Close();
con.Open();
string sql = "insert into config TT('4','呵呵','哈哈')";
MySqlCommand cmd = new MySqlCommand(sql,con);
cmd.ExecuteNonQuery();
con.Close();
最终效果如: