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

记录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!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值