使用QT5+sqlite数据库。且create table和select是成功执行的。insert还未测试。
但是我是用如下代码做update时(我是用一个dialog显示QTableView中选中行的数据,点击确定时执行以下方法中代码:
QSqlQuery sqlQuery(m_sqliteDatabase);
sqlQuery.prepare("update jwords set c1=:c1,c2=:c2,c3=:c3,type=:type,tag=:tag,word=:word,kana=:kana,paraphrase=:paraphrase,note=:note where id=:id;");
sqlQuery.bindValue(":c1", cardStruct.m_c1);
sqlQuery.bindValue(":c2", cardStruct.m_c2);
sqlQuery.bindValue(":c3", cardStruct.m_c3);
sqlQuery.bindValue(":type", cardStruct.m_type);
sqlQuery.bindValue(":tag", cardStruct.m_tag);
sqlQuery.bindValue(":word", cardStruct.m_word);
sqlQuery.bindValue(":kana", cardStruct.m_kana);
sqlQuery.bindValue(":paraphrase", cardStruct.m_paraphrase);
sqlQuery.bindValue(":note", cardStruct.m_note);
sqlQuery.bindValue(":id", id);
bool r = sqlQuery.exec();
qDebug() << sqlQuery.lastError();
qDebug() << sqlQUery.numRowsAffected();
return r;
sqlQuery.lastError()
是lastError("","","")
,也就是空的。sqlQuery.exec
返回结果是true
,执行后的sqlQUery.numRowsAffected()
是1
。- 数据中除了
id
列外都是text
数据类型。
补充:经过试验发现,出问题的数据是因为我填入的都是数据都是数字。我将其改为非数字数据就正常了。但是这是一个bug,因为我这里有部分数据实际使用时是会出现数字的,我要怎么办?