浩仔 2022-03-10 11:45 采纳率: 0%
浏览 502

qt中使用sqlite创建表失败

问题遇到的现象和发生背景

qt中使用sqlite创建表失败

问题相关代码,请勿粘贴截图
部分代码
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(mHistoryDB);
if(db.open())
{
    qDebug()<<"Database History Opened";

 QSqlQuery sql_query;
 QString create_sql = "create table if not exists Customer (id INTEGER  primary key AUTOINCREMENT,\
                                                name varchar(100), \
                                                type int ,\
                                                vaccine int,\
                                                reason varchar(100))"; //创建数据表
    sql_query.prepare(create_sql);
    sql_query.exec();                   //创建表

    QString sql = "insert into Customer values(NULL,\"%1\",%2,%3,\"%4\")";        //插入数据
    sql = sql.arg(p->name).arg(p->type).arg(p->vaccine).arg(p->reason);    //这些参数的格式验证过没有问题
    sql_query.prepare(sql);
    if(!sql_query.exec())
    {
        qDebug()<<sql_query.lastError();
    }
    else
    {
        qDebug()<<"插入记录成功History";
    }
}
db.close();

}

运行结果及报错内容

Database History Opened
QSqlError("", "Unable to fetch row", "No query")

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 关注

    你这个不是建表报错,应该是插入数据的时候报错,你先插入一条写死的数据看看能不能写进去,可能是你的插入语句语法不对或者sql语句中的数据类型跟表中的数据类型不匹配

    评论

报告相同问题?

问题事件

  • 创建了问题 3月10日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看