首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将“集合字符串”和“从QLineEdit输入”合并到QString中

将“集合字符串”和“从QLineEdit输入”合并到QString中
EN

Stack Overflow用户
提问于 2014-12-11 08:08:47
回答 2查看 437关注 0票数 2

我正在编写一个GUI应用程序,它将从oracle数据库执行select *从table_name并在TableView模型中填充结果。将我的查询作为查询我使用的数据库的输入--

代码语言:javascript
复制
QString MyQuery = ui->lineEdit->text();
QSqlQuery query(MyQuery,db); 

而且效果很好。

现在,我想通过使用户只键入table_name作为lineEdit中的输入来优化它。该程序将在其上执行select * from table_name

因此,我认为我需要将"SELECT * FROM“存储在QString变量中,并将来自lineEdit的输入连接到其中。

我不太清楚这个连接的语法,所以我的两个尝试

代码语言:javascript
复制
    QString myquery;
    strcat(myquery,"SELECT * FROM ");
    strcat(myquery,ui->lineEdit );

和,

代码语言:javascript
复制
    QString myquery = "SELECT * FROM " + ui-lineEdit->text();

已经导致了构建错误。对如何进行所需的连接有任何建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-11 08:21:37

可以使用QSqlTableModelQTableView中显示表内容:

代码语言:javascript
复制
QSqlTableModel * model = new QSqlTableModel(this,db);
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->setTable( "someTable" );
model->select();

ui->tableView->setModel( model );

但是,如果您想使用QSqlQuery,您可以使查询如下:

代码语言:javascript
复制
String myquery = QString("SELECT * FROM %1").arg(ui->lineEdit->text());

甚至更好:

代码语言:javascript
复制
query.prepare("SELECT * FROM :tableName");
query.bindValue(":tableName", ui->lineEdit->text());
票数 4
EN

Stack Overflow用户

发布于 2014-12-11 08:20:53

可以使用QString::arg向字符串添加参数。

例如:

代码语言:javascript
复制
QString input = ui->lineEdit->text();
QString myQUery = QString("SELECT * FROM %1").arg(input);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27418047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档