QT下如何动态的修改sqlite数据库的列值

changing_better 2011-08-18 02:15:42
如题,我想动态的修改数据库的值,根据我接收到的数据,定义为变量 int a.
我使用的是,本意是想把row的值修改为a的值,a的值又是读取数据的值,这样我想把变量a的值传进去,这样写可以吗?
QSqlQuery query(db);

query.exec("updata table set row=a where id =1);

字符串里面不会识别 a是个变量吧!
...全文
455 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
honeychen12345 2013-03-21
  • 打赏
  • 举报
回复
不知道楼主的问题解决没 要是解决了 麻烦发个示例程序让我看看 在此非常感谢 894531550@qq.com
changing_better 2011-08-18
  • 打赏
  • 举报
回复
还是自己说个实际操作方法吧,在网上搜了一圈。感谢楼上的回答,但具体步骤我还是不知道。
int a=475;
query.prepare("UPDATE da8101 SET maxuab=:a where id=1");
query.bindValue(":a",a);
query.exec();//这句是真正执行SQL语句的
这里的“:a”叫做占位符,这是ODBC数据库的表示方法,还有一种Oracle的表示方法就是全部用“?”号。如下
int a=475;
query.prepare("UPDATE da8101 SET maxuab=? where id=1");
query.bindValue(0,a);
query.exec();//这句是真正执行SQL语句的
这样就可以把a的值传进sql语句里面,修改数据库了。
如果是多个变量可以这样

int a=475;
int b=1;
query.prepare("UPDATE da8101 SET maxuab=? where id=?");
query.bindValue(0,a);
query.bindValue(1,b);
query.exec();//这句是真正执行SQL语句的

wwwwb 2011-08-18
  • 打赏
  • 举报
回复
一般是用字符串累加生成SQL语句,再执行
changing_better 2011-08-18
  • 打赏
  • 举报
回复
哦,QT下也是这么搞的吗?QT的QSqlQuery::exec()函数介绍的不清楚,只是说参数是QString类型,最后问下,你在QT下如何实现呢?
wwwwb 2011-08-18
  • 打赏
  • 举报
回复
不太明白,为啥要转换为字符型呢?
因为执行的是字符串

我的意思是把a的值赋值给row,a是个int型的变量!!
我的语句就是将a的值赋值给row,而你的语句是将row=a,A不会是变量

如果你的方法可行,麻烦写代码看下。
代码已经有了,只是不知道在你的语言中,INT->字段变量的函数是什么,比如是tran
query.exec("updata table set row="+tran(a)+" where id =1");
changing_better 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwwwb 的回复:]
query.exec("updata table set row="+a+" where id =1");
用函数将A转换成字符型
[/Quote]
不太明白,为啥要转换为字符型呢?
我的意思是把a的值赋值给row,a是个int型的变量!!
如果你的方法可行,麻烦写代码看下。
wwwwb 2011-08-18
  • 打赏
  • 举报
回复
query.exec("updata table set row="+a+" where id =1");
用函数将A转换成字符型

2,208

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧