[求助]使用微软企业库调用mySQL数据库存储过程_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2511 | 回复: 0   主题: [求助]使用微软企业库调用mySQL数据库存储过程        下一篇 
wzj
注册用户
等级:新兵
经验:67
发帖:64
精华:0
注册:2011-11-15
状态:离线
发送短消息息给wzj 加好友    发送短消息息给wzj 发消息
发表于: IP:您无权察看 2014-11-24 10:44:17 | [全部帖] [楼主帖] 楼主

求助求助求助!!

在线等!

我在使用企业库调用存贮过程的时候需要传入参数,但是在传参的时候,出现下面的问题:

主要代码

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编码格式的,所以是可以支持目前通用的字符编码的

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论