我在qt上工作,我的数据库与qt连接正确,但突然我在每次调试时遇到了以下问题,,,我无法从数据库中获取或添加数据,,,我不知道是什么问题,但我对qt还不熟悉。
qsqlquery::exec:数据库未打开
有人能帮忙吗,这是紧急情况
这里是密码

db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=C:/Users/user/Desktop/Final_Version/db.accdb");
db.close();
db.open();
QSqlQuery query;
query.exec("Select ID from TestId");
while(query.next())
{
 TestId = query.value(0).toInt();
}
db.close();
//==================================================================================

最佳答案

您需要在sqldrivers文件夹中为Microsoft Access驱动程序添加qsql dll文件
如果正在调试,请检查以下内容
检查项目设置中的dll引用(在项目的.pro文件中,必须将qt+=sql放入,如果使用的是visual studio集成,则在项目设置窗体属性中检查引用)
检查qtdirectory中的驱动程序文件夹和dll
如果要分发应用程序,只需将SQL驱动程序文件夹与所需的DLL一起复制到可执行文件中。
编辑用数据库连接绑定的qsqlquery对象

db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb};FIL={MSAccess};DBQ=C:/Users/user/Desktop/Final_Version/db.mdb");
database.open();
QSqlQuery query(db);
query.exec("Select ID from TestId");
while(query.next())
{
    TestId = query.value(0).toInt();
}
db.close();

我想,这些可以帮助你…:)

关于database - QSqlQuery::exec:数据库未打开,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16868078/

10-11 02:14
查看更多