QT向MySQL数据库中插入数据出现乱码

 1. 问题代码

stuSql::stuSql(QObject *parent) : QObject(parent)
{
    struct stuInfo s;
    s.id=2206;
    s.name='大陈';
    s.age=23;
    s.grade='新媒体2022';
    s.class1='新媒体传播';
    db=QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setPassword("123456");
    db.setUserName("root");
    db.setDatabaseName("mydatabase");
    if(db.open()){
        QMessageBox::information(nullptr,"警告","数据库连接成功");
    }else{
        QMessageBox::warning(nullptr,"警告","数据库连接失败");
    }
    insertStu(s);
}
int stuSql::getStudentnum()
{

}

bool stuSql::insertStu(stuInfo info)
{
    QSqlQuery query(db);
    QString str=QString("INSERT INTO managementVALUES(%1,'%2',%3,'%4','%5','%6')")
            .arg(info.id).arg(info.name).arg(info.age)
            .arg(info.grade).arg(info.class1).arg(info.phone);
    query.exec(str);
}

 2. 出现问题

 3. 如何解决

知识点:如果要在字符串中使用单引号或双引号,需要用另一种引号来包裹这个字符

所有将代码改为:

stuSql::stuSql(QObject *parent) : QObject(parent)
{
    struct stuInfo s;
    s.id=2206;
    s.name="大陈";
    s.age=23;
    s.grade="新媒体2022";
    s.class1="新媒体传播";
    db=QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setPassword("123456");
    db.setUserName("root");
    db.setDatabaseName("mydatabase");
    if(db.open()){
        QMessageBox::information(nullptr,"警告","数据库连接成功");
    }else{
        QMessageBox::warning(nullptr,"警告","数据库连接失败");
    }
    insertStu(s);
}
int stuSql::getStudentnum()
{

}

bool stuSql::insertStu(stuInfo info)
{
    QSqlQuery query(db);
    QString str=QString("INSERT INTO managementVALUES(%1,'%2',%3,'%4','%5','%6')")
            .arg(info.id).arg(info.name).arg(info.age)
            .arg(info.grade).arg(info.class1).arg(info.phone);
    query.exec(str);
}

4. 结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值