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