QT数据库的插入、更新、删除、查看的五种写法

当前方式仅支持QT的封装库QSqlQuery来调用。
先打开数据库,然后将QSqlQuery和QSqlDatabase绑定。

QSqlDatabase db;
db = QSqlDatabase::addDatabase("QSQLITE","test-connect");
QString dbpath = QApplication::applicationDirPath() + "/test.db";
db.setDatabaseName(dbpath);
db.setPassword("123456");
db.setHostName("127.0.0.1");
db.setUserName("CSDN");
if (!db.open()){
        perror(db.lastError().text().toUtf8().data());
        return false;
    }
QSqlQuery query(db);

QSqlQuery被绑定后,就能使用sql指令的增删改查了。sql教程

// 插入方式一:直接插入数据
query.exec("insert into tableName values(1, '小明')"); 
// 插入方式二:使用命名占位符的[命名]绑定
query.prepare("insert into tableName(id, name) values (:id, :name)");
query.bindValue(":id", 2);
query.bindValue(":name", "张三");
query.exec();
// 插入方式三:使用命名占位符的[位置]绑定
query.prepare("insert into tableName(id, name) values (:id, :name)");
query.bindValue(0, 3);
query.bindValue(1, "李四");
query.exec();
// 插入方式四:使用位置占位符绑定值(版本 1)
query.prepare("insert into tableName(id, name) values (?, ?)");
query.bindValue(0, 4);
query.bindValue(1, "王五");
query.exec();
// 插入方式五:使用位置占位符绑定值(版本 2)
query.prepare("insert into tableName(id, name) values (?, ?)");
query.addBindValue(5);    // 使用位置值绑定时,将值val添加到值列表中。addBindValue()调用的顺序决定了在准备好的查询中将值绑定到哪个占位符
query.addBindValue("老六");
query.exec();

当然像更新,删除,查看都是一样的,如下各举一个例子,其它四种方法跟插入的写法一样
更新

query.prepare("update tableName set name= ?  where id= ?") ;
query.addBindValue("老溜");
query.addBindValue("5");
query.exec();

删除

query.prepare("delete from tableName where id= ?") ;
query.addBindValue("5");
query.exec();

查看

query.prepare("select * from tableName where id= ?") ;
query.addBindValue("5");
query.exec();

你可能感兴趣的:(c/c++,QT,数据库,qt,开发语言)