QT 中SQL數據


在QT 的 .pro 工程文件中需要添加

#增加數據庫支持
QT   += sql    

初始化創建數據庫

void Widget::initsql()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("bank.db");
    if(db.open())
    {
        qDebug()<<"db open succ";
    }else{
        qDebug()<<"db open fail";
    }
}

創建初始化 數據庫表

void Widget::createTable()
{
    QString cmd = "create table user("
                  "ID char(9) primary key,"
                  "Name varchar(10) not null,"
                  "Passwd varchar(20) not null,"
                  "Balance char(10) not null);";
    QSqlQuery query;
    if(query.exec(cmd))
    {
        qDebug()<<"create succ";
    }else{
        qDebug()<<"create fail";
    }
}

訪問數據庫操作

QString cmd = tr("select Passwd from user "
                         "where ID = '%1';").arg(id);// 獲取數據庫中ID 爲 id的數據
QSqlQuery query;	// 定義數據庫類
query.exec(cmd);    // 執行數據指令  
        if(query.next())  //
        {
            if(query.value(0).toString() == passwd)
            { 
	            // 數據庫中的passwd 等於 passwd;
            }
        }                  

更新數據庫數據

        QString cmd = tr("update user set Balance = '%1' where ID = '%2'").arg(getmoney).arg(id);
        QSqlQuery query;
        query.exec(cmd);

刪除數據庫數據

    QString cmd = tr("delete from user where ID = '%1';").arg(id);
    QSqlQuery query;
    if(query.exec(cmd))
    {
        QMessageBox::information(this,"提示","刪除用戶信息成功!");
        emit deleteusersucc();
    }else {
        QMessageBox::information(this,"提示","失敗!");
    }

添加數據庫信息

    QSqlQuery query;
    QString cmd = tr("insert into user values("
                     "'%1', '%2', '%3', '%4')").arg(id).arg(name).arg(passwd).arg(balance);
    if(query.exec(cmd))
    {
        QMessageBox::information(this,"提示","<font color='black'>添加成功!");
        emit addusersucc();
    }else{
        QMessageBox::information(this,"提示","<font color='black'>添加失敗!");
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章