关于qt连接数据库
如题,代码如下#include <QSqlDatabase>
#include <QSqlQuery>
static bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.db");
if(!db.open())
return false;
QSqlQuery query;
query.exec("CREATE TABLE student (id int primary key)");
//query.exec("DELETE FROM student WHERE id = 1");
return true;
}
static bool modifyDatabase(int num)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.db");
if(!db.open())
return false;
QSqlQuery query;
query.exec("CREATE TABLE student (id int primary key)");
query.prepare("INSERT INTO student (id) VALUES (:id)");
query.bindValue(0, 5);
query.exec();
return true;
}
#endif // DATABASE_H
编译结果:
D:\Files\Graduate Project\3-12\sendToDatabase-build-desktop-Qt_4_8_0_for_Desktop_-_MinGW__Qt_SDK__Debug\..\sendToDatabase\database.h:28: error: no matching function for call to 'QSqlQuery::bindValue(int, int)'
请教大侠们如何解决?谢谢! --------------------编程问答-------------------- query.bindValue(":id", 5);
--------------------编程问答--------------------
还是不行,报错如下:
D:\Files\Graduate Project\3-12\sendToDatabase-build-desktop-Qt_4_8_0_for_Desktop_-_MinGW__Qt_SDK__Debug\..\sendToDatabase\database.h:28: error: no matching function for call to 'QSqlQuery::bindValue(const char [4], int)' --------------------编程问答-------------------- 自己顶一下 --------------------编程问答--------------------
嗯,不错,顶 --------------------编程问答-------------------- 出现这个问题的原因是你没有添加QVariant Library,而query.bindValue(":id", 5);中的5是变量,需要添加QVariant Library这个库来指明。
--------------------编程问答-------------------- --------------------编程问答-------------------- 加上
#include <QVariant> 就可以了! --------------------编程问答-------------------- 没遇到过这个问题 学习了 --------------------编程问答-------------------- LZ的 query.bindValue(0, 5); 没有用错,qt是可以通过序列号来给 :变量 赋值的
请问LZ在工程里面有没有加上 QT += sql
?
补充:移动开发 , Qt