簡體   English   中英

將“一組字符串”和“從QLineEdit輸入”匯總到一個QString中

[英]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();

導致構建錯誤。 有關如何執行所需的連接的任何建議???

您可以使用QSqlTableModelQTableView顯示表內容:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM