C++ 如何将选定行的第一列值绑定到变量,并在QT中的SQL命令中使用它?

C++ 如何将选定行的第一列值绑定到变量,并在QT中的SQL命令中使用它?,c++,mysql,qt,C++,Mysql,Qt,这是我的代码,它在单击按钮时崩溃: QSqlQueryModel*Acceuil::consulter_evenements() { QSqlDatabase bd= QSqlDatabase::database(); QSqlQueryModel * model=new QSqlQueryModel(); model->setQuery("SELECT E.* FROM EVENEMENT AS E JOIN CATALOGUES_EVENEMENTS as CE JOIN

这是我的代码,它在单击按钮时崩溃:

QSqlQueryModel*Acceuil::consulter_evenements()
{

 QSqlDatabase bd= QSqlDatabase::database();

 QSqlQueryModel * model=new QSqlQueryModel();

 model->setQuery("SELECT E.* FROM EVENEMENT AS E JOIN CATALOGUES_EVENEMENTS as CE JOIN CATALOGUES as C ON C.ID_Catalogue = CE.ID_Catalogue AND E.ID=CE.ID_Evenement AND C.ID_Catalogue='"+ui->listeCatalogues->selectionModel()->selectedRows(0).at(0).data(Qt::DisplayRole).toString()+"' GROUP BY ID_Catalogue");

 return model;
}
我尝试将ui->ListCataloges->selectionModel->selectedRows0.at0.dataQt::DisplayRole.toString绑定到QString,但它也崩溃了

用简单的查询(如SELECT*FROM EVENEMENT)替换查询也不起作用。

当您使用模型->设置查询时。。。您应该使用QSqlQuery作为参数。
创建QSqlQuery对象。使用QSqlQuery::bindValue或类似方法将所有值绑定到查询。只有在make model->setQuery queryWithMybindedValues

之后,您才需要找出嵌套的许多调用中的哪一个崩溃。控制台上的错误消息是什么?尝试在调试器中运行它。可能是没有选择行。它只是崩溃,没有错误消息。但可能是因为我想测试按钮,所以没有选择行。