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