欢迎投稿

今日深度:

QT SQLite,qtsqlite

QT SQLite,qtsqlite


1.准备

.pro文件:QT+=sql

头文件: #include<QSqlDatabase>,<QSqlError>,<QSqlQuery>

2.建立数据库

QSqlDatabase database;         

if(QSqlDatabase::contains("qt_sql_default_connection")){       //存在返回true

    database = QSqlDatabase::database("qt_sql_default_connection");

}else{

    database = QSqlDatabase::addDatabase("QSQLITE");           //可以加第二个参数“my_connection”,不然默认是上面那个链接名称

    database.setDatabaseName("MyDatabase.db");

    database.setUserName("Bean");

    database.setPassword("......");

}

3.打开/关闭数据库

if(!database.open()){

    qDebug()<<"Error:"<<database.lastError();

}else{

    ....

    //数据库操作。。

    ....  

}

database.close();             //关闭数据库;

4.操作数据库    --<QSqlQuery>

创建表格

QSqlQuery sql_query;

sql_query.prepare("create TABLE  table1(id int primary key,name varchar(30),age int)");

if(!sql_query.exec()){

    qDebug()<<sql_query.lastError();

}else{

    qDebug()<<"Table  has created!";

}

//可以直接sql_query.exex("sql语句!"); 

//exec()是判断返回,prepare()值执行。

插入数据

sql_query.exec("INSERT INTO table1 values(3,\"Tom\",12));

修改数据

sql_query.prepare("update table1 set name = :name WHERE id = :id");

sql_query.bindValue(":name","Qt");

查询数据

sql_query.prepare("select id,name from table1");

while(sql_query.next()){           //默认是-1的

    int id = sql_query.value(0).toInt();                 //第一个参数

    QString name = sql_query.value(1).toString();

    qDebug()<<QString("id:%1      name:%2").arg(id).arg(name);

   //也可以直接qDebug()<<sql_query.value(0);

}

查询最大值:"select max(id) from table1";


www.htsjk.Com true http://www.htsjk.com/SQLite/33570.html NewsArticle QT SQLite,qtsqlite 1.准备 .pro文件:QT+=sql 头文件: #includeQSqlDatabase,QSqlError,QSqlQuery 2.建立数据库 QSqlDatabase database;          if(QSqlDatabase::contains("qt_sql_default_connection")){       //存在返回...
相关文章
    暂无相关文章
评论暂时关闭