mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtSql>
#include <QSqlTableModel>
#include <QSqlDatabase>
#include <QString>
#include <QSqlError>
#include <QMessageBox>
#include <QSqlRecord>
#include <iostream>
#include <QTableView>
#include <QAbstractItemModel>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void connection();
private:
Ui::MainWindow *ui;
private slots:
void listInforSlot();
void showInsertSlot();
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "insert.h"
using namespace std;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QObject::connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(listInforSlot()));
QObject::connect(ui->insertButton,SIGNAL(clicked()),this,SLOT(showInsertSlot()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::listInforSlot(){
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("teachers");
db.setUserName("root");
db.setPassword("FORGETme11");
bool ok=db.open();
if(ok){
}
else{
QMessageBox msgBox;
msgBox.setText("Error connect database!"+db.lastError().text());
msgBox.exec();
}
QSqlTableModel *model=new QSqlTableModel;
model->setTable("infors");
model->setFilter("age>=35");
model->select();
for(int i=0;i<model->rowCount();i++)
{
QSqlRecord record=model->record(i);
int id=record.value("id").toInt();
QString name=record.value("name").toString();
QString add=record.value("address").toString();
int age=record.value("age").toInt();
cout<<id<<".."<<qPrintable(name)<<".."<<qPrintable(add)<<".."<<age<<endl;
}
ui->tableView->setModel(model);
db.close();
//QSqlDatabase::removeDatabase("teachers");
}
void MainWindow::showInsertSlot()
{
insert *widget=new insert;//show出insert窗口
widget->show();
}
void MainWindow::connection(){
}
insert.h:
#ifndef INSERT_H
#define INSERT_H
#include <QDialog>
#include <QtSql>
#include <QSqlTableModel>
#include <QSqlDatabase>
#include <QString>
#include <QSqlError>
#include <QMessageBox>
#include <QSqlRecord>
#include <iostream>
#include <QTableView>
#include <QAbstractItemModel>
namespace Ui {
class insert;
}
class insert : public QDialog
{
Q_OBJECT
public:
explicit insert(QWidget *parent = 0);
~insert();
private slots:
void insertSlot();
private:
Ui::insert *ui;
};
#endif // INSERT_H
insert.cpp:
#include "insert.h"
#include "ui_insert.h"
using namespace std;
insert::insert(QWidget *parent) :
QDialog(parent),
ui(new Ui::insert)
{
ui->setupUi(this);
QObject::connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(insertSlot()));
}
insert::~insert()
{
delete ui;
}
void insert::insertSlot(){
QSqlDatabase db1=QSqlDatabase::addDatabase("QMYSQL");
db1.setHostName("localhost");
db1.setDatabaseName("teachers");
db1.setUserName("root");
db1.setPassword("FORGETme11");
bool ok=db1.open();
if(!ok)
{
QMessageBox msgBox;
msgBox.setText("Error connect database!"+db1.lastError().text());
msgBox.exec();
}
int id=ui->idEdit->text().toInt();
//QString id2=QString::number(id);
QString name=ui->nameEdit->text().trimmed();//string
// string name1=name.toStdString();
QByteArray name1=name.toUtf8();
QString add=ui->addEdit->text().trimmed();
// string add1=add.toStdString();
QByteArray add1=add.toUtf8();
int age=ui->ageEdit->text().toInt();
cout<<id<<".."<<qPrintable(name)<<".."<<qPrintable(add)<<".."<<age<<endl;
/*bool ok=db.open();
if(!ok){
QMessageBox msgBox;
msgBox.setText("Database not list.");
msgBox.exec();
}
else
{*/
QSqlQuery query;
query.prepare("INSERT INTO infors (id, name, address,age) "
"VALUES (?,?,?,?)");
query.addBindValue(id);
query.addBindValue(name1);
query.addBindValue(add1);
query.addBindValue(age);
query.exec();
// }
// QString insert=QString("insert into infors values(11,;
//QSqlQuery query(insert);
//query.exec();
db1.close();
close();
}
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
};