I’m facing an issue with a table widget not displaying data from your database, despite the query executing successfully. The debug output reveals two rows of information, including IDs, titles, genres, and dates, but the widget isn’t reflecting this data.
**emission.cpp
**
QSqlQueryModel* emission::afficherEmisionsByDate(const QDate &date) {
QSqlQueryModel *model = new QSqlQueryModel();
QSqlQuery query;
// Assuming your database date format is 'DD-MON-YY'
QString dateString = date.toString("dd-MMM-yy");
query.prepare("SELECT * FROM KHOULOUD.EMISSION WHERE DATE_DIFFUSION = TO_DATE(:date, 'DD-MON-YY')");
query.bindValue(":date", dateString);
if (query.exec()) {
model->setQuery(query);
return model;
} else {
qDebug() << "Error executing query:" << query.lastError().text();
delete model;
return nullptr;
}
}
**mainwindow.cpp
**
void MainWindow::on_calendarWidget_2_clicked(const QDate &date)
{
emission e;
qDebug() << "Date selected:" << date.toString("dd-MMM-yy");
QSqlQueryModel *model = e.afficherEmisionsByDate(date);
if (model) {
ui->tableWidget->clearContents();
ui->tableWidget->setRowCount(model->rowCount());
ui->tableWidget->setColumnCount(model->columnCount());
if (model->lastError().isValid()) {
qDebug() << "Query execution failed:" << model->lastError().text();
} else {
qDebug() << "Query executed successfully. Rows:" << model->rowCount();
for (int row = 0; row < model->rowCount(); ++row) {
for (int col = 0; col < model->columnCount(); ++col) {
QString data = model->data(model->index(row, col)).toString();
QTableWidgetItem *item = new QTableWidgetItem(data);
ui->tableWidget_2->setItem(row, col, item); // Changed from ui->tableWidget_2 to ui->tableWidget
qDebug() << "Row:" << row << "Column:" << col << "Data:" << data;
}
}
}
delete model;
}
}
1