求助求助求助!!
在线等!
我在使用企业库调用存贮过程的时候需要传入参数,但是在传参的时候,出现下面的问题:
主要代码
db = DatabaseFactory.CreateDatabase("useMember");
………………
DbCommand dbcmd = db.GetStoredProcCommand("SP_Insert_userbase");
………………
//添加参数
…………
db.AddInParameter(dbcmd, "C_UserName", DbType.String, "张三"); // 就是这句,如果是汉字的话就报错,英文不报错
int count = db.ExecuteNonQuery(dbcmd);
我存储过程中参数C_userName的数据类型是Varchar(15)接收的!!!
高手指点一下啊!!谢谢了!!
问题补充:
报这个错!
MySQLException
Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'C_UserName' at row 1
肯定是汉字那里出问题。。。就是不知道怎么解决!
最佳答案
mysql是不支持nvarchar数据类型的,在mysql中创建数据库和表结构时指定编码为utf-8即可。
也可以修改数据库或者表:
--修改数据库
ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
--修改表
ALTER TABLE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
我补充说点.
varchar在mysql默认编码下是不支持非指定编码格式的字符的(也就是不支持中文的),所以要mysql支持也可以,要么你把中文进行编码,编码成mysql数据库指定的编码格式。
另外通用的办法是在数据库中把vachar型的字符改成NVarchar型,NVarchar字符型是Unicode编码格式的,所以是可以支持目前通用的字符编码的
--转自