Qt操作SQLite数据库练习(20200215)
生活随笔
收集整理的這篇文章主要介紹了
Qt操作SQLite数据库练习(20200215)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <QCoreApplication>
#include <QDebug>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QString>
#include <QSqlRecord>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);//! 添加數據庫驅動QSqlDatabase mySqlLiteDB = QSqlDatabase::addDatabase("QSQLITE");//! 設置數據庫名稱mySqlLiteDB.setDatabaseName("E:/work/qe/mytest1/database.db");//! 打開數據庫if(!mySqlLiteDB.open())return false;//! 以下執行相關sql語句QSqlQuery mySqlQuery;//! 清空student表mySqlQuery.exec("drop table student");//! 新建student表,id設置為主鍵,還有一個name項mySqlQuery.exec("create table student (id int primary key, name vchar,course int)");//!批量導入QStringList strListStdName;strListStdName<<"wang bin"<<"xiao yu"<<"ye mei";QStringList strListStdCourse;strListStdCourse<<"Math"<<"English"<<"Computer";mySqlQuery.prepare("INSERT INTO student (id,name, course) ""VALUES (:id,:name, :course)");for (int i = 0; i < strListStdName.size(); i++){mySqlQuery.bindValue(":id",i); //! 加入主鍵mySqlQuery.bindValue(":name", strListStdName[i]); //! 向綁定值里加入名字mySqlQuery.bindValue(":course", strListStdCourse[i]); //! 課程mySqlQuery.exec(); //! 加入庫中}//! 向表中插入1條數據mySqlQuery.bindValue(0,3);mySqlQuery.bindValue(1,"wang han");mySqlQuery.bindValue(2,"Chinese");mySqlQuery.exec();mySqlQuery.exec("insert into student values(3,'wang han','Chinese')");//! 查找表中id >=1 的記錄的id項和name項的值mySqlQuery.exec("select * from student where id >= 0");//! query.next()指向查找到的第一條記錄,然后每次后移一條記錄QSqlRecord mySqlRec = mySqlQuery.record();while(mySqlQuery.next()){//! 獲取query所指向的記錄在結果集中的編號int nRowNum = mySqlQuery.at();//! 獲取每條記錄中屬性(即列)的個數int nColumnNum = mySqlQuery.record().count();//! 獲取"name"屬性所在列的編號,列從左向右編號,最左邊的編號為0int nFieldNo = mySqlQuery.record().indexOf("name");nFieldNo = mySqlRec.indexOf("course");//! 獲取id屬性的值,并轉換為int型int stud_id = mySqlQuery.value(0).toInt();//! 獲取name屬性的值QString stud_name = mySqlQuery.value(1).toString();//! 獲取course屬性的值QString stud_course = mySqlQuery.value(2).toString();//! 輸出結果qDebug() << nRowNum << nColumnNum << nFieldNo << stud_id << stud_name << stud_course;}//! 定位到結果集中編號為2的記錄,即第三條記錄,因為第一條記錄的編號為0qDebug() << "exec seek(2) :";if(mySqlQuery.seek(2)){qDebug() << "rowNum is : " << mySqlQuery.at()<< " id is : " << mySqlQuery.value(0).toInt()<< " name is : " << mySqlQuery.value(1).toString();}//! 定位到結果集中最后一條記錄qDebug() << "exec last() :";if(mySqlQuery.last()){qDebug() << "rowNum is : " << mySqlQuery.at()<< " id is : " << mySqlQuery.value(0).toInt()<< " name is : " << mySqlQuery.value(1).toString();}//! 修改表內容mySqlQuery.exec("update student set course = 'Chinese' where id = 1");mySqlQuery.exec("alter table student add score int");mySqlQuery.exec("alter table student alter column score vchar(20)");//! 刪除表內容//mySqlQuery.exec("delete from student where id = 1");return a.exec();}
?
?
總結
以上是生活随笔為你收集整理的Qt操作SQLite数据库练习(20200215)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt学习笔记之SQLITE数据库
- 下一篇: Qt学习笔记之MySQL数据库