我应该如何插入qstring sqlite数据库在qt
how should i insert qstring to sqlite database in qt
我想插入2 QString
到我的数据库,但我面临这个错误:
QSqlError(1, "Unable to execute statement", "table login_t already exists")
和我的数据库是空的我的代码是:
void School::set_db( QString usern, QString pass )
{
QSqlDatabase db1 =QSqlDatabase::addDatabase("QSQLITE");
db1.setDatabaseName( "school1.db");
bool isOpen = db1.open() ;
QSqlQuery q(db1);
QString queryString = "INSERT INTO login_t (user, pass) VALUES (?,?)";
q(queryString);
q.addBindValue(usern);
q.addBindValue(pass);
q.exec();
}
set_db("user1" , "pass1");
根据错误table login_t already exists
的消息,我可以告诉你,你试图创建表login_t
,而这个表已经存在。(你应该尝试创建空DB(没有表),当你修复准备语句,再次运行你的代码)
另一方面,如果您在运行代码之前创建DB和表,则只需要在查询中修复prepare语句。(不要忘记,dataBaseName需要数据库的完整路径。如果你写school.db
,它将在bin
文件附近搜索你的DB文件)
确保正确创建了数据库。您可以使用外部工具(如SQLite Studio)来完成此操作。您也可以尝试"重新创建"整个数据库,并检查问题是否已修复。
查看下面的代码:
bool School::set_db(QString usern, QString pass)
{
QSqlDatabase db1 = QSqlDatabase::addDatabase("QSQLITE");
// You need to set the full path to the database file. E.g.: "C:/Databases/school1.db"
db1.setDatabaseName("school1.db");
if( !db1.open() )
{
qDebug() << "Could not open the database connection!";
qDebug() << "Error:" << db1.lastError();
return false;
}
QSqlQuery query(db1);
QString queryString = "INSERT INTO login_t (user, pass) VALUES (:user, :pass)";
if( !query.prepare(queryString) )
{
qDebug() << "Prepare:" << query.lastError();
return false;
}
query.addBindValue(":user", usern);
query.addBindValue(":pass", pass);
if( !query.exec() )
{
qDebug() << "Exec:" << query.lastError();
return false;
}
return true;
}
set_db("user1", "pass1");
我不确定,但是您显示的错误消息似乎是在另一个代码块中打印的。也许在某些地方,你正在尝试创建login_t
表
相关文章:
- 将 Qvector<uint8_t> 转换为 QString
- 查询SQLite数据库中的日期
- 带内存和隔离功能的SQLite
- Qt SQLite没有查询或参数计数不匹配
- Qt SQlite无法创建表
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 数数并选择 sqlite 中的前三名
- 如何使用SQLite将数据库中的值导出为C / C++中的字符串或字符?
- QStringList vs list<shared_ptr<QString>> 性能比较C++
- 将 hh:mm:ss.zzz 时间 QString 转换为毫秒的单行函数?
- 如何使用SQLite在qt中创建表?
- 使用 cl 构建代码并连接到 sqlite 库
- 连接到 URL Sqlite 数据库C++
- protobuf C++ SQLite handle blob data
- Qt C++ 如何在 1 个命令中砍掉属于 QStringList 成员的 QString 字母
- 为什么使用 QString::right 在字符串开头省略逗号?
- Qt:更新 QString 时自动生成的代码失败
- 如何将 QString 的 QList 分配给列表视图?
- QString in sqlite select
- 我应该如何插入qstring sqlite数据库在qt