-
UID:120294
-
- 注册时间2011-07-31
- 最后登录2011-08-12
- 在线时间15小时
-
- 发帖17
- 搜Ta的帖子
- 精华0
- 金钱170
- 威望27
- 贡献值0
- 好评度17
-
访问TA的空间加好友用道具
|
- #ifndef DATABASE_H
- #define DATABASE_H
- #include <QSqlDatabase>
- #include <QSqlQuery>
- static bool createConnection()
- {
- QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
- db.setDatabaseName("database.db");
- if(!db.open()) return false;
- QSqlQuery query;
- query.exec("create table student (id int primary key, name vchar,course int)");
- query.exec("insert into student values (1,'yafei0',1)");
- query.exec("insert into student values (2,'yafei1',1)");
- query.exec("insert into student values (3,'yafei2',2)");
- query.exec("create table course (id int primary key, name vchar, teacher vchar)");
- query.exec("insert into course values (1,'Math','yafeilinux1')");
- query.exec("insert into course values (2,English'','yafeilinux2')");
- query.exec("insert into course values (3,'Computer','yafeilinux3')");
- return true;
- }
- #endif // DATABASE_H
- #ifndef WIDGET_H
- #define WIDGET_H
- #include <QSqlRelationalTableModel>
- #include<QTableView>
- #include <QWidget>
- namespace Ui {
- class Widget;
- }
- class Widget : public QWidget
- {
- Q_OBJECT
- public:
- explicit Widget(QWidget *parent = 0);
- ~Widget();
- QSqlRelationalTableModel *model;
- private:
- Ui::Widget *ui;
- };
- #endif // WIDGET_H
- #include "widget.h"
- #include "ui_widget.h"
- Widget::Widget(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::Widget)
- {
- ui->setupUi(this);
- model = new QSqlRelationalTableModel(this);
- model->setEditStrategy(QSqlTableModel::OnFieldChange); //属性变化时写入数据库
- model->setTable("student");
- model->setRelation(2,QSqlRelation("course","id","name"));
- //将student表的第三个属性设为course表的id属性的外键,并将其显示为course表的name属性的值
- model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
- model->setHeaderData(1, Qt::Horizontal, QObject::tr("Name"));
- model->setHeaderData(2, Qt::Horizontal, QObject::tr("Course"));
- model->select();
- ui->tableView->setModel(model);
- }
- Widget::~Widget()
- {
- delete ui;
- }
- #include <QtGui/QApplication>
- #include "widget.h"
- #include "database.h"
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- Widget w;
- w.show();
- if(!createConnection()) return 1;
- return a.exec();
- }
|