mys_qt

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
QT       += core gui  sql
#include <QMainWindow>
#include <QtSql>
#include <QVariant>
#include <QDebug>
 
 
namespace Ui {
class MainWindow;
}
 
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
 
private slots:
    void on_listButton_clicked();
 
 
    void on_add_clicked();
    
private:
    Ui::MainWindow *ui;
    //数据库句并
    QSqlDatabase db;
 
 
};
 
 
#endif // MAINWINDOW_H

#include "mainwindow.h"
#include "ui_mainwindow.h"
 
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}
 
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
 
void MainWindow::on_listButton_clicked()
{
    this->db = QSqlDatabase::addDatabase("MYSQL");
    this->db.setHostName("localhost");
    this->db.setUserName("root");
    this->db.setPassword("selen4955");
    this->db.setDatabaseName("student");
    bool ok = db.open();
    if(ok)
        {
 
 
        
    }
    else
        {
 
 
        qDebug()<<"error open database because"<<this->db.lastError().text();
    }
    //执行命令
    QSqlQuery query;
    query.exec("select * from student");
   //返回一个结构集
    while(query.next())
        {
        // query.value  是QVariant类型
        int id=query.value(0).toInt();
        QString name=query.value(1).toString();
        qDebug()<<id<<name;
    }
    this->db.close();
}
 
 
void MainWindow::on_add_clicked()
{
   if(this->db.isOpen())
       {
       
       qDebug()<<"db is open";
   }
   else
       {//错误信息
       
        qDebug()<<"error open database because"<<this->db.lastError().text();
   }
   this->db = QSqlDatabase::addDatabase("MYSQL");
   this->db.setHostName("localhost");
   this->db.setUserName("root");
   this->db.setPassword("selen4955");
   this->db.setDatabaseName("student");
   bool ok = db.open();
   if(ok)
       {
       QSqlQuery query;
       //先匹配在绑定
       
       
       
       
             query.prepare("INSERT INTO person (id, name) "
                           "VALUES (:id, :name)");
             query.bindValue(":id",ui->lineEdit->text());
             query.bindValue(":forename", ui->lineEdit_2->text());
            
             bool ok =query.exec();
             if(ok)
                 {
                 
                 qDebug()<<"insert ok";
             }
             else
                 {
                 
                 qDebug()<<"insert error";
             }
       
       
   }
   else
       {
       
       qDebug()<<"error open database because"<<this->db.lastError().text();
   }
   
}


转载于:https://www.cnblogs.com/countryboy666/p/11072725.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值