2017-10-06 52 views
1

我想要做的是從文本字段(即cust_name)獲取輸入,並使用column cust_name從數據庫中匹配並獲取記錄。 數據庫有表cust和列cust_name,address。我想找到一種方法來顯示QSqlTableModel的tablview中的數據。如何從sqlite中獲取一條記錄並在tableview中顯示

QSqlTableModel *model = new QSqlTableModel; 
model->setTable("cust"); 
model->setEditStrategy(QSqlTableModel::OnManualSubmit); 
ui->tableView->setModel(model); 
ui->tableView->setColumnHidden(0,1); 
ui->tableView->setColumnHidden(5,1); 

ui->list->setModel(model); 
ui->list->setModelColumn(1); 

model->select(); 

這成功顯示了名爲cust的整個表。我希望能夠將其更改爲顯示與搜索詞匹配的單個記錄。

+1

添加'QSortFilterProxyModel'和篩選有或改變當前模型使用'QSqlQueryModel'與一個自定義SELECT語句 –

+0

我通過使用QSqlQueryModel的QSortFilterSqlQueryModel子類實現了它。 – user2185284

回答

1

使用函數index()來訪問自定義行/列。

QSqlTableModel *model = new QSqlTableModel; 
int value = model->index(row,column).data().toInt(); 

在您的情況是這樣的:

int value = model->index((model->rowCount()-1),column).data().toInt(); 

或自定義的SQL查詢:

SELECT * FROM tablename ORDER BY id DESC LIMIT 1; 
相關問題