QSqlQuery::prepare: database not open 寻求帮忙,谢谢各位

闪电侠风行 2011-11-10 07:12:49
运行程序,总是出现这句话,不知道什么地方出错误来,希望各位帮帮忙!!谢谢!!!!!!!!!!!!


QSqlQuery::prepare: database not open





附部分源码;

QSqlQuery query;
query.prepare("select * from admin where account =:admin");
query.bindValue("admin",ui->account->text());
query.exec();



...全文
2361 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
忧伤的蜗牛 2012-01-16
  • 打赏
  • 举报
回复 4
楼主
我好像在另外一个帖子里见过你 也是问这个问题 还没有解决吗 ?

在你使用 query时 加一句 : query = QSqlQuery(db_name); 这个就可以关联到你之前 db打开的那个数据库了,这样 query 才能 在 db_name 这个数据库中执行操作!~~
tiantangrenjian 2012-01-08
  • 打赏
  • 举报
回复
按你上面写的,有没有出现警告的信息框?你数据库的名字确定是namespace ?有没有设置访问权限密码?有没有加载mysql驱动?(QT本身没有支持mysql,需要自己添加)
闪电侠风行 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xingfeng2510 的回复:]

database not open
错误提示说没有打开数据库,是不是没有建立连接就直接使用QSqlQuery实例了?
static bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("personnel.db");
……
[/Quote]

我是这样写的;
db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("namespace");
if(!db.open()){
QMessageBox::critical(this,QString::fromLocal8Bit("警告"),QString::fromLocal8Bit("无法与目的数据库连接"));
不知道怎么回事啊
xingfeng2510 2011-11-10
  • 打赏
  • 举报
回复
database not open
错误提示说没有打开数据库,是不是没有建立连接就直接使用QSqlQuery实例了?
static bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("personnel.db");
if (!db.open()) {
QMessageBox::warning(0, QObject::tr("Database Error"),
db.lastError().text());
return false;
}
return true;
}

不知道是不是少了下面几行呢?
bool create = !QFile::exists("xxx.db");
if (!createConnection())
return 1;

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧