五天磕磕碰碰终于完成了数据库课程设计-图书管理系统,下面总结下 RHEL6.3使用Qt访问数据库的一些经验。
1.安装环境。
1> 安装MySQL。 添加/删除软件那里,搜索下MySQL,客户端服务端都安装。
2> Qt要使用MySQL,在pro文件中加上 QT+=sql 就可以。
3> 安装个 MySQL-workbenth. 直接官网下载rpm包,安装时发现少了libzip和另外一个文件。在rpm网站搜索下这两个。三个一起安装就可以了。
2. Qt访问MySQL。参考《C++_GUI_Qt_编程》第13章。非常详细。
主要用 QSqlQuery 或者 QSqlQueryModel来操作数据库。
query.isActive检查数据库操作中是否有错误发生。
query.exec("INSERT INTO borrowbook ( Reader_Id, Book_Id, Borrow_Time) "
"VALUES (?, ?, ?)");
query.addBindValue(ui->readeridLineEdit->text());
query.addBindValue(ui->bookidLineEdit->text());
query.addBindValue(ui->borrowtimeLineEdit->text());
query.exec();
model->setQuery("update book set Remains='"+ ui->remainsLineEdit->text() +
"' where Book_Id='"+ ui->bookidLineEdit->text() +"'");
model->submit();
QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("SELECT * FROM book");
model->setHeaderData(0, Qt::Horizontal, QObject::tr("Book ID"));
model->setHeaderData(1, Qt::Horizontal, QObject::tr("Book Name"));
model->setHeaderData(2, Qt::Horizontal, QObject::tr("Author"));
model->setHeaderData(3, Qt::Horizontal, QObject::tr("Publisher"));
model->setHeaderData(4, Qt::Horizontal, QObject::tr("Number"));
model->setHeaderData(5, Qt::Horizontal, QObject::tr("Remains"));
QTableView *view = new QTableView;
view->setModel(model);
view->setWindowTitle(QObject::tr("Book Information"));
view->show();
3.Qt学到的新知识。
对话框有模态和非模态。
模态对话框用 dlg.exec()调用,会返回一个值。非模态用 dlg.show()调用。不返回值。
4. 数据库的理解。理解了主键外键等基础知识。。学会访问数据库。
具体参考此工程源码吧。 已经复制到移动硬盘了~~