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语句
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QString filename, QWidget *parent = 0); //数据库文件名,存储数据库的操作
~Widget();
void showInfo();
void clearInput();
private slots:
void on_pb_add_clicked();
void on_pb_delete_clicked();
void on_pb_query_clicked();
void on_pb_update_clicked();
private:
Ui::Widget *ui;
QSqlDatabase db_student; //表示数据库的连接
QString db_file_name; //数据库文件名
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QFile> //文件类
#include <QDebug>
#include <QSqlError>
Widget::Widget(QString filename, QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget),
db_file_name(filename)
{
ui->setupUi(this);
ui->cbb_gender->setCurrentIndex(-1);
ui->cbb_gender->setFixedSize(224,40);
ui->te_table_content->setReadOnly(true);
QFile file(db_file_name); //要操作的文件名
if(!file.exists())
{
//数据库文件不存在表示这个程序第一次被运行
//连接数据库,创建数据库表,生成数据库文件
//"QSQLITE"表示创建的是基于sqlite数据库的连接
db_student &