pro:QT += core gui sql
widget.ui
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w("./student.db");
w.show();
return a.exec();
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QSqlDatabase> //数据库连接
#include <QSqlQuery> //执行SQL语句
#include <QSqlError> //具体错误
#include <QDebug>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QString filename,QWidget *parent = 0);
~Widget();
void showInfo();
private slots:
void on_pb_add_clicked();
void on_pb_update_clicked();
void on_pb_delete_clicked();
private:
Ui::Widget *ui;
QString db_file_name; //数据库文件名
QSqlDatabase db_student; //数据库名
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QFile>
#include <QMessageBox>
Widget::Widget(QString filename,QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget),
db_file_name(filename)
{
ui->setupUi(this);
setWindowTitle("学生信息系统");
setFixedSize(800,600);
QFile file(db_file_name);
if(!file.exists())
{
db_student = QSqlDatabase::addDatabase("QSQLITE"); //建立到SQLITE数据库的连接
db_student.setDatabaseName(db_file_name); //设置数据库文件名
//打开数据库
if (!db_student.open())
{
qDebug() << "打开数据库失败1";
}
else
{
qDebug() << "打开数据库成功1";
}
//QSqlQuery用于SQL语句的执行,对返回结果的使用
//要指定使用的数据库的连接 db_student
QSqlQuery sql_query(db_student);
//创建数据库的表
QStr