记录Qt学习过程中遇到的问题(一)

本文记录了在Qt中链接和使用MySQL数据库的过程,包括数据库的下载与安装(需与Qt版本匹配),以及数据库的增删改查操作示例代码。重点是解决64位与32位兼容问题,并提供了数据库连接与更新数据的函数实现。

记录Qt学习过程中遇到的问题(一)

QT链接数据库

(一)数据库的安装

1、数据库的下载

在这里因为电脑本身下载有Qt5.13的64位版本,所以一开始尝试了数据库的64位,但是没有成功。
注意Qt和Mysql需要使用同样位数的软件,比如同样的32位
重新下载了Qt5.9的32位,下载了Mysql32位。Mysql的下载地址:
原文地址: link
使用下面的版本。在这里插入图片描述
第一次安装是按照该链接的博主进行安装的
原文地址: link
第二次的时候直接是选择custom自定义安装,只安装了32位数据库。

2、Qt的下载

Qt的下载在老哥的文章里面有了,很全,很详细。
原文地址:: link

(二)数据库的使用

本次只是用了数据库的增删改查。
原文地址: link
下面展示一些 内联代码片

#define MYSQL_CREATE_STD_TABLE  "create table student(id int primary key auto_increment,name varchar(255), sex varchar(255)," \
                   "age int,num int,major varchar(255));"
#define MYSQL_CREATE_PROGAMMER_TABLE "create table progammer(id int primary key auto_increment,name varchar(255), sex varchar(255)," \
                "age int,workage int);"
bool Mysql::loginMysql(char* HostName, int Port, char* DataBaseName, char* UserName, char* PassWord)
{
    if(!isMysqlConcent())
    {
        QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
        db.setHostName(HostName);
        db.setPort(Port);
        db.setDatabaseName(DataBaseName);
        db.setUserName(UserName);
        db.setPassword(PassWord);
        if (db.open()){
            initMysqlData();
            createMysqlBase(MYSQL_CREATE_STD_TABLE);
            createMysqlBase(MYSQL_CREATE_PROGAMMER_TABLE);
            setMqsql_Concent(true) ;
        }
        else {
            qDebug()<<"login faild";
            setMqsql_Concent(false) ;

        }
    }
}

eg:开始同步数据库数据

void Mysql::mysql_upData(const QList<StudentInfo>& StdInfoList,const QList<ProgrammerInfo>& ProgrammerInfoList,QString info,int row,int index)
{
    QString sql;

    if(index ==EM_STUDENT)
    {
        QString t_name = StdInfoList[row].getName();
        int     t_sex  = StdInfoList[row].isSex();
        int     t_age  = StdInfoList[row].getAge();
        int     t_num  = StdInfoList[row].getstdNumber();
        QString t_major = StdInfoList[row].getMajor();
        if(t_sex)
        {
            sql = QString("update student set id='%1',name='%2',sex='%3',age='%4',num='%5',major='%6' where id='%7'")
                    .arg(row+1).arg(t_name).
                    arg(SEX_MAN).arg(t_age).arg(t_num)
                    .arg(t_major).arg(row+1);
            sql = info;
        }
        else {
            sql = QString("update student set id='%1',name='%2',sex='%3',age='%4',num='%5',major='%6' where id='%7'")
                    .arg(row+1).arg(t_name).
                    arg(SEX_WOMAN).arg(t_age).arg(t_num)
                    .arg(t_major).arg(row+1);
             sql = info;
        }
    }
    else if(index == EM_PROGAMMER){
        QString t_name = ProgrammerInfoList[row].getName();
        int     t_sex  = ProgrammerInfoList[row].isSex();
        int     t_age  = ProgrammerInfoList[row].getAge();
        int     t_workAge  = ProgrammerInfoList[row].getWorkAge();
        if(t_sex)
        {
            sql = QString("update progammer set id='%1',name='%2',sex='%3',age='%4',workage='%5' where id='%6'")
                    .arg(row+1).arg(t_name).
                    arg(SEX_MAN).arg(t_age).arg(t_workAge)
                   .arg(row+1);
        }
        else {
            sql = QString("update progammer set id='%1',name='%2',sex='%3',age='%4',workage='%5' where id='%6'")
                    .arg(row+1).arg(t_name).
                    arg(SEX_WOMAN).arg(t_age).arg(t_workAge)
                   .arg(row+1);
        }
    }
    qDebug()<<"sql"<<sql;
    QSqlQuery query;
    query.exec(sql);
}

暂时记录这么多,希望下次可以更好。fighting!

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值