首页 新闻 会员 周边

使用微软企业库调用mySQL数据库存储过程

0
悬赏园豆:100 [已解决问题] 解决于 2010-05-24 10:49

求助求助求助!!

在线等!

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

主要代码

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 肯定是汉字那里出问题。。。就是不知道怎么解决!
西米阿耶的主页 西米阿耶 | 初学一级 | 园豆:84
提问于:2010-05-22 14:34
< >
分享
最佳答案
0

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

收获园豆:100
上不了岸的鱼 | 老鸟四级 |园豆:4613 | 2010-05-23 13:41
我数据库编码格式是gbk的,不可以吗?
西米阿耶 | 园豆:84 (初学一级) | 2010-05-24 09:09
gbk也是可以的。。。问题已经解决
西米阿耶 | 园豆:84 (初学一级) | 2010-05-24 10:47
其他回答(3)
0

报的什么错误?

Hawkon | 园豆:225 (菜鸟二级) | 2010-05-22 14:56
0

mysql默认编码是ISO-8859-1
试试Nvarchar(15)

邀月 | 园豆:25475 (高人七级) | 2010-05-22 15:48
MySql就没有Nvarchar……
支持(0) 反对(0) 西米阿耶 | 园豆:84 (初学一级) | 2010-05-24 09:07
0

邀月 做了回答,我补充说点.

varchar在mysql默认编码下是不支持非指定编码格式的字符的(也就是不支持中文的),所以要mysql支持也可以,要么你把中文进行编码,编码成mysql数据库指定的编码格式。

另外通用的办法是在数据库中把vachar型的字符改成NVarchar型,NVarchar字符型是Unicode编码格式的,所以是可以支持目前通用的字符编码的

西越泽 | 园豆:10775 (专家六级) | 2010-05-22 20:50
MySQl没有Nvarchar……
支持(0) 反对(0) 西米阿耶 | 园豆:84 (初学一级) | 2010-05-24 09:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册