QTableViewでデータベース検索を表示するSQLiteデータベースアクセスでアプリケーションを作成しています。検索はすべての列を検索しています。今、私はセルを編集してデータベースに保存したいと思っています。私は細胞を編集することができるようですが、データは保存されません。QTとSQLiteを使用してセル編集でデータベースを更新
void MainWindow::on_search_box_textChanged(const QString &arg1)
{
QSqlQueryModel *GetTable = new QSqlTableModel(ui->tableView);
if(!arg1.isEmpty())
{
GetTable->setQuery(QString("SELECT * FROM Cour WHERE (Date LIKE '""%"+arg1+"%""' OR Name LIKE '""%"+arg1+"%""' OR bill LIKE '""%"+arg1+"%""' OR [B O L] LIKE '""%"+arg1+"%""' OR SO LIKE '""%"+arg1+"%""' OR ETA LIKE '""%"+arg1+"%""' OR Description LIKE '""%"+arg1+"%""');"));
ui->tableView->setModel(GetTable);
ui->tableView->setAlternatingRowColors(GetTable);
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
}
if(arg1.isEmpty())
{
GetTable->clear();
ui->tableView->clearFocus();
ui->tableView->setModel(GetTable);
}
}
これはQTableViewでデータを表示するために使用するコードです。私はQSqlTableModelとQSqlQueryModelの間で変更しようとしました。ドキュメントと数時間のグーグルに基づいて、セルの編集時にQTableViewがデータベースを更新するかのように見えます。私は何かを欠いているに違いない。
まず、プライマリキーのないデータベースが原因である可能性があると考えましたが、どちらの場合も状況は同じです。