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

86 篇文章 1 订阅

当前方式仅支持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();
  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方忘忧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值