![](/img/trans.png)
[英]Convert data from QLineEdit to QString when a QPushButton is clicked.
[英]Concatination of “a set strings” and “input from QLineEdit” into a QString
我正在編寫一個GUI應用程序,它將從oracle數據庫中執行select * from table_name ,並在TableView模型中填充結果。 把我的查詢作為查詢我用過的數據庫的輸入---
QString MyQuery = ui->lineEdit->text();
QSqlQuery query(MyQuery,db);
它完美無缺。
現在,我想通過使用戶僅輸入table_name作為lineEdit中的輸入來對其進行優化。 程序將自動執行select * from table_name 。
所以我認為我需要在QString變量中存儲“SELECT * FROM”並將lineEdit的輸入連接到它。
我對這種隱含的語法不太確定,所以我都嘗試了-
QString myquery;
strcat(myquery,"SELECT * FROM ");
strcat(myquery,ui->lineEdit );
和,
QString myquery = "SELECT * FROM " + ui-lineEdit->text();
導致構建錯誤。 有關如何執行所需的連接的任何建議???
您可以使用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());
您可以使用QString::arg
向字符串添加參數。
例如:
QString input = ui->lineEdit->text();
QString myQUery = QString("SELECT * FROM %1").arg(input);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.