以前我使用sql server 2005作为我的网站数据库,一切运作良好.
现在我已经改为 MySql server 5.5数据库,因为它是开源的.
现在我已经改为 MySql server 5.5数据库,因为它是开源的.
我使用Navicat Premium将我的数据从sql server传输到MysqL.我使用MysqL workbench和navicat来管理我的数据库.当我声明与MysqL数据库的连接时出现问题.这是我的代码:
MysqLCommand cmdselect; MysqLConnection conNDB; MysqLDataReader Mydtr; string server = "localhost"; string database = "maindb"; string uid = "root"; string password = "abc123"; string strCon = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";"; string strSelect = "SELECT * FROM announcement"; conNDB = new MysqLConnection(strCon); conNDB.Open(); cmdselect = new MysqLCommand(strSelect,conNDB); Mydtr = cmdselect.ExecuteReader(); rptAnnounce.DataSource = Mydtr; rptAnnounce.DataBind(); Mydtr.Close(); conNDB.Close();
已经设置了对MysqL.Data的引用.在这里我收到此错误消息:
Exception Details:
MysqL.Data.MysqLClient.MysqLException:
Variable ‘character_set_client’ can’t
be set to the value of ‘utf16’
Error message stated this error occurs during connection.Open();
Exception Details: MysqL.Data.MysqLClient.MysqLException: Expected end of data packet
Error message stated this error occurs during Mydtr = cmdselect.ExecuteReader();
解决方法
解决了!!感谢@Etienne Rached和@jeremi
所有问题都来自字符集问题.
您需要检查2个地方:
1)右键单击数据库,例如. MYDB.然后选择属性并设置字符集
2)右键单击表并选择设计表.单击每一行以更改字符集,最后转到“选项”选项卡并更改字符集.
对于您的信息:这是非常罕见的情况.我google它几乎找不到解决方案.我在安装MysqL时创建了这个错误,我选择了utf16格式>< 顺便说一下,简单的连接字符串将起作用.喜欢
"server=localhost;database=maindb;uid=root;pwd=abc123;CharSet=utf8; port=3306";