void MainWindow::conect(){ /*QT Demos or exmples 提供了關於SQLITE資料庫的使用方法。 */ QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//使用MySql載入MYSQL驅動 db.setHostName("localhost");//設定主機名稱,串連資料庫之前必須設定主機名稱 db.setDatabaseName("test");//設定使用的資料庫名稱 db.setUserName("root");//登入mysql時的使用者名稱 db.setPassword("123");//登入mysql時的密碼 bool ok = db.open();//開啟資料庫 if(ok) { qDebug()<<"open Database!"<<endl; } else { QMessageBox::critical(0,QObject::tr("Database error"),db.lastError().text()); }}void MainWindow::execute(){ QSqlQuery query;//執行SQL語句 query.exec("create table employee(id int(11) primary key,name varchar(50),description varchar(255))");//建表 query.exec("insert into employee values(1,'AnPan','student')");//插入資料 query.exec("insert into employee values(2,'CaoLing','student')"); query.exec("insert into employee values(3,'LvSumei','student')"); query.exec("insert into employee values(4,'PanJiaoLi','student')");}void MainWindow::display(){ QSqlTableModel *model = new QSqlTableModel;//資料模型 model->setTable("employee");//讓表employee model->setEditStrategy(QSqlTableModel::OnManualSubmit); //所有更改將被緩衝在模型中,直到submitAll()或者revertAll()函數被調用 model->select(); //select()函數用於確認一個或者多個套介面的狀態。對於每一個套介面,調用者可以查詢它的可讀性,可寫性及錯誤狀態資訊 model->setHeaderData(0,Qt::Horizontal,QObject::tr("ID"));//設定表頭 model->setHeaderData(1,Qt::Horizontal,QObject::tr("Name")); model->setHeaderData(2,Qt::Horizontal,QObject::tr("Description")); this->ui->tableView->setModel(model);}