1. 程式人生 > >QT通過ODBC來連線sqlsever 2008資料庫

QT通過ODBC來連線sqlsever 2008資料庫

檔案頭新增#include<QtSql/QtSql> 工程檔案pro中新增QT += sql //連線資料庫函式如下:

 QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");//利用odbc連線sqlsever
    db.setDatabaseName(QString("DRIVER={SQL SERVER};"
                               "SERVER=%1;" //伺服器名稱
                               "DATABASE=%2;"//資料庫名
                               "UID=%3;"           //登入名
                               "PWD=%4;"        //密碼
                               ).arg("USER-20180909NN\\TONG")//伺服器名稱,一般伺服器名需要多加一個'\'表示轉義字元
                       .arg("data")//資料庫名  用你的資料庫名來代替data  
                       .arg("sa")//登入名          用你的資料庫名來代替sa
                       .arg("1234")//密碼    用你的資料庫名來代替1234
                       );//只要對號入座就可連線
    if(db.open())
    {
        qDebug()<<"connect sucess";
    }
    if (!db.open())
    {
        QMessageBox::critical(0, qApp->tr("Cannot open database"),
                              db.lastError().databaseText(), QMessageBox::Cancel);
    }

//查詢資料庫資訊

void Widget::on_pushButton_query_clicked(){
    QSqlQueryModel *model = new QSqlQueryModel;
                model->setQuery("select * from dbo.dingdan");//這裡直接設定SQL語句,dbo.dingdan 表示資料庫名稱
                ui->tableView->setModel(model);//在tableView中顯示資料庫資訊
    }
//插入資料庫的函式


 void Widget::insert_da()
        {
            QSqlQuery query(db);
            if(!query.prepare("INSERT INTO dbo.dingdan(species,price,number)" "VALUES(:species,:price,:number)"))
            {
                qDebug()<<"error";
            }
            query.bindValue(":species",species);
            query.bindValue(":price",price);
            query.bindValue(":number",number);
        
            query.exec();
        
        }

//刪除資料庫

void Widget::on_pushButton_delete_clicked()
    {
      QSqlQuery query(db);
        QString text_dingdan = ui->lineEdit_dingdan->text();
       QString str = QString("delete from dbo.dingdan where dingdan_ID='%1' ").arg(text_dingdan);
       query.exec(str);
    }

//修改資料庫

void Widget::on_pushButton_alter_clicked()
{
    QSqlQuery query(db);
    QString text_dingdan = ui->lineEdit_dingdan->text();
    QString text_meat=ui->lineEdit_meat->text();
    int text_goodsin=ui->lineEdit_goods_in->text().toDouble();
    int text_goodsout=ui->lineEdit_goods_out->text().toDouble();
    int text_kucun =text_goodsin-text_goodsout;
    QString str = QString("update dbo.dingdan set dingdan_ID='%1',kucun='%2',meat_ID='%3',goods_in='%4',goods_out='%5' where dingdan_ID ='%6' ").arg(text_dingdan).arg(text_kucun).arg(text_meat).arg(text_goodsin).arg(text_goodsout).arg(text_dingdan);
     qDebug()<<query.exec(str);
    on_pushButton_query_clicked();
}