我正在编写一个GUI应用程序,它将从oracle数据库执行select *从table_name并在TableView模型中填充结果。将我的查询作为查询我使用的数据库的输入--
QString MyQuery = ui->lineEdit->text();
QSqlQuery query(MyQuery,db); 而且效果很好。
现在,我想通过使用户只键入table_name作为lineEdit中的输入来优化它。该程序将在其上执行select * from table_name。
因此,我认为我需要将"SELECT * FROM“存储在QString变量中,并将来自lineEdit的输入连接到其中。
我不太清楚这个连接的语法,所以我的两个尝试
QString myquery;
strcat(myquery,"SELECT * FROM ");
strcat(myquery,ui->lineEdit );和,
QString myquery = "SELECT * FROM " + ui-lineEdit->text();已经导致了构建错误。对如何进行所需的连接有任何建议吗?
发布于 2014-12-11 08:21:37
可以使用QSqlTableModel在QTableView中显示表内容:
QSqlTableModel * model = new QSqlTableModel(this,db);
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->setTable( "someTable" );
model->select();
ui->tableView->setModel( model );但是,如果您想使用QSqlQuery,您可以使查询如下:
String myquery = QString("SELECT * FROM %1").arg(ui->lineEdit->text());甚至更好:
query.prepare("SELECT * FROM :tableName");
query.bindValue(":tableName", ui->lineEdit->text());发布于 2014-12-11 08:20:53
可以使用QString::arg向字符串添加参数。
例如:
QString input = ui->lineEdit->text();
QString myQUery = QString("SELECT * FROM %1").arg(input);https://stackoverflow.com/questions/27418047
复制相似问题