QT資料庫使用案列【連絡人】-- 使用sqlite和QStringListModel

來源:互聯網
上載者:User

標籤:

【簡要功能介紹】

使用sqlite資料庫和Qt搭建介面,實現連絡人資料庫記錄。連絡人有id編號,姓名,年齡.可對連絡人

【表增加連絡人】

【刪除連絡人】

【更新連絡人資訊】

【顯示全部連絡人資訊】

【運行介面】

 

【源碼下載】【http://pan.baidu.com/s/1o6OGley】

使用sqlitebrowser 查看

【初始化資料庫】

 QLibrary sqlib("./sqldrivers/qsqlited.dll");    sqlib.load ();    qDebug()<<"my library loaded"<<sqlib.isLoaded();    db = QSqlDatabase::addDatabase("QSQLITE","SQLITE");#ifdef Q_OS_LINUX    QString path(QDir::home().path());    path.append(QDir::separator()).append("my.db.sqlite");    path = QDir::toNativeSeparators(path);    db.setDatabaseName(path);#else    db.setDatabaseName("my.db.sqlite");#endif    /*     * create my.db.sqlite file if not exist     */    db.open ();    db.close ();

【建立表】

    if(db.open ()){        sql_query = QSqlQuery (db);        sql_query.prepare(create_sql);        if(!sql_query.exec())        {            qDebug()<<sql_query.lastError();        }        else        {            qDebug()<<"table created!";        }    }    updateDataBaseShow();

【插入記錄】

 if(db.open ()){        sql_query = QSqlQuery (db);        int max_id = 0;        sql_query.prepare(select_max_sql);        if(!sql_query.exec())        {            qDebug()<<sql_query.lastError();        }        else        {            while(sql_query.next())            {                max_id = sql_query.value(0).toInt();                qDebug()<<QString("max id:%1").arg(max_id);            }        }        sql_query.prepare(insert_sql);        sql_query.addBindValue(max_id+1);        sql_query.addBindValue(ui->lineEdit_name->text ());        sql_query.addBindValue(ui->lineEdit_age->text ().toInt ());        if(!sql_query.exec())        {            qDebug()<<sql_query.lastError();        }        else        {            qDebug()<<"inserted!";        }        updateDataBaseShow();    }

【顯示全部資料(兩列,id和name)】

 if(db.open ()){        sql_query = QSqlQuery (db);        if(!sql_query.exec(select_sql))        {            qDebug()<<sql_query.lastError();        }        else        {            while(sql_query.next())            {                int id = sql_query.value("id").toInt();                QString name = sql_query.value("name").toString();                qDebug()<<QString("id:%1    name:%2").arg(id).arg(name);            }        }    }

【顯示全部資料】

if(db.open ()){        sql_query = QSqlQuery (db);        sql_query.prepare(select_all_sql);        if(!sql_query.exec())        {            qDebug()<<sql_query.lastError();        }        else        {            ui->textEdit->clear ();            while(sql_query.next())            {                int id = sql_query.value(0).toInt();                QString name = sql_query.value(1).toString();                int age = sql_query.value(2).toInt();                ui->textEdit->append (QString("id:%1    name:%2    age:%3").arg(id).arg(name).arg(age));                qDebug()<<QString("id:%1    name:%2    age:%3").arg(id).arg(name).arg(age);            }        }    }

【清除表】

 if(db.open ()){        sql_query = QSqlQuery (db);        sql_query.prepare(clear_sql);        if(!sql_query.exec())        {            qDebug()<<sql_query.lastError();        }        else        {            qDebug()<<"cleared";        }    }    updateDataBaseShow();

【刪除一條記錄】combobox選中的記錄刪除

  if(db.open ()){         sql_query = QSqlQuery (db);         sql_query.prepare(delete_sql);         sql_query.addBindValue(ui->comboBox->currentText ().toInt ());         if(!sql_query.exec())         {             qDebug()<<sql_query.lastError();         }         else         {             qDebug()<<"deleted!";         }     }     updateDataBaseShow();

【更新連絡人資訊】

if(db.open ()){         sql_query = QSqlQuery (db);         sql_query.prepare("update student set name = :name ,age = :age where id = :id");         sql_query.bindValue(":name", ui->lineEdit_name->text ());         sql_query.bindValue(":age", ui->lineEdit_age->text ());         sql_query.bindValue(":id", ui->comboBox->currentText ().toInt ());         if(!sql_query.exec())         {             qDebug()<<sql_query.lastError();         }         else         {             qDebug()<<"updated!";         }     }     updateDataBaseShow();

 

  

【刪除資料庫】

 #ifdef Q_OS_LINUX        QString path(QDir::home().path());        path.append(QDir::separator()).append("my.db.sqlite");        path = QDir::toNativeSeparators(path);        QFile::remove(path);    #else        QFile::remove("my.db.sqlite");    #endif        ui->comboBox->clear ();        ui->textEdit->clear ();

 

QT資料庫使用案列【連絡人】-- 使用sqlite和QStringListModel

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.