• 13487阅读
  • 9回复

query.exec("SELECT * FROM info WHERE id='Id'");   无法显示 [复制链接]

上一主题 下一主题
离线wlinqiunan
 

只看楼主 倒序阅读 楼主  发表于: 2011-03-08
  QString Id = IDEdit->text();
    query.exec("SELECT * FROM info WHERE id='Id'");  //这里提示id 无效 但是id我已经定义为表的属性
   //换成query.exec("SELECT * FROM info "); 就有结果
    query.next();  //指向查找到的第一条记录
    IDEdit->setText(query.value(0).toString());
    userNameEdit->setText(query.value(1).toString());
    userPhoneEdit->setText(query.value(2).toString());
    userAddressEdit->setText(query.value(3).toString());
    monthCurrentEdit->setText(query.value(4).toString());


大家认为这是什么问题
离线浪漫天使
只看该作者 1楼 发表于: 2011-03-09
SELECT * FROM info WHERE id='Id'
后面那个引号里面的Id
不是你
QString Id = IDEdit->text();
返回的Id
离线wlinqiunan

只看该作者 2楼 发表于: 2011-03-09
引号的'ld'返回值是对的 就是读id的时候读不到
离线浪漫天使
只看该作者 3楼 发表于: 2011-03-09
没明白我的意思
QString Id = IDEdit->text(); 这个得到的Id 比如是 100
但是
SELECT * FROM info WHERE id='Id' 引号里面的 Id
其实就是 Id这个字符本身
而不是上面返回的 100
离线wlinqiunan

只看该作者 4楼 发表于: 2011-03-09
这样啊   那请问要这么解决这个问题啊  
我是想返回表info 中属性id    =  'Id'的行
或者有什么其他办法可以查询到数据库的
离线浪漫天使
只看该作者 5楼 发表于: 2011-03-09
QString Id = IDEdit->text();
QString str = "SELECT * FROM info WHERE id=";
str += "'";
str += ld;
str += "'";
    query.exec( str );
离线luoyang

只看该作者 6楼 发表于: 2011-03-10
学习了~
离线kaede
只看该作者 7楼 发表于: 2011-04-09
回 5楼(浪漫天使) 的帖子
你好,请教一下,当将控件的文本作为查询的条件时(如where id=**) 必须得用你上面的方法吗?
顺便问一下,Qt编写有关数据库的语句时  必须是大写字母吗?(稍弱智的问题)
离线fsddp

只看该作者 8楼 发表于: 2011-04-12
楼主问题解决没? 我也遇到差不多的问题
QString Id = IDEdit->text();
QString str = "SELECT * FROM info WHERE id=";
str += "'";
str += ld;
str += "'";
    query.exec( str );
好像不行哦
离线xiaoxianlg
只看该作者 9楼 发表于: 2012-07-19
首先我问你,在数据库中的表info中id是什么类型
我想id一般都是int型吧(假如是int型,下面我来告诉你错在哪儿)
首先,QString Id = IDEdit->text();获取的是string类型,最好是变成int型。
然后可以这样
query.exec(QString("SELECT * FROM info id=%1").arg(Id));
可以查看QString类,其次可以查看arg()函数(这个函数有很多重载的值得一看)
还有"SELECT * FROM info id=%1"//注意%1这里的int数必须为10进制,其他进制不可以
通过arg()函数可以默认转换。
快速回复
限100 字节
 
上一个 下一个