void FillTable(){
MainWindow conn;//this is a variable type MainWindow
QSqlQueryModel * modal=new QSqlQueryModel();//Creating the Modal
conn.connOpen();//connOpen Method to Open the Connection
QSqlQuery sql=new QSqlQuery(conn.mydb);//MyDb MyDatabase declarted in connOpen
sql->prepare("Select * from particulier");
sql->exec();
modal->setQuery(sql);
ui->tableViewUi->setModel(modal);
conn.connClose();
}
connOpen
bool connOpen(){
mydb = QSqlDatabase::addDatabase("QMYSQL");
mydb.setHostName("Localhost");
mydb.setDatabaseName("testnaltis");
mydb.setUserName("root");
mydb.setPassword("");
mydb.open();
//bool ok = db.open();
if(mydb.isOpen()){
qDebug()<<("Connexion Etablie");
return true;
}else{
qDebug()<<("Erreur De connexion");
return false;
}
}
答案 0 :(得分:2)
QSqlQuery sql=new QSqlQuery(conn.mydb);
类型不匹配,应为
// C++11
auto sql=new QSqlQuery(conn.mydb);
// or
// C++98
QSqlQuery * sql = new QSqlQuery(conn.mydb);
此外,
modal->setQuery(sql);
应该是
modal->setQuery(*sql);
因为它需要一个对象,而不是一个指向对象的指针。