Qt 4.2.1(community)在链接Mysql(Mysql Server 5.1)成功后,插入语句中有某个值为奇数个汉字时无法插入的解决方法

Qt 4.2.1(community)在链接Mysql(Mysql Server 5.1)成功后,插入语句中有某个值为奇数个汉字时无法插入的解决方法

问题描述:
如下面的代码所示,执行到插入语句第三句插入“计算机”时无法插入此句,但前两句插入成功。

    QSqlQuery query(db);
    // 使数据库支持中文
    query.exec("SET NAMES 'utf8'");
    // 创建 course 表
    query.exec("create table course(id int primary key, name varchar(20), teacher varchar(20))ENGINE=InnoDB DEFAULT CHARSET=utf8;");
    query.exec("insert into course values(0,'数学', '刘老师');");
    query.exec("insert into course values(1,'英语', '张老师');");
    query.exec("insert into course values(2,'计算机','李老师');");
    return true;
}

解决方法:
(1)创建course表时使用如下语句
query.exec(“create table course(id int primary key, name varchar(20), teacher varchar(20))ENGINE=InnoDB DEFAULT CHARSET=utf8;”);
使用后可以添加中文,但显示乱码。
在这里插入图片描述

(2)在connection.h头文件中添加如下语句
#ifdef _MSC_VER
#pragma execution_character_set(“utf-8”)
#endif
修改后显示正确。
(3)结果显示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值