gpt4 book ai didi

c++ - QT/SQLITE-数据库上的奇怪符号?

转载 作者:太空宇宙 更新时间:2023-11-04 13:21:02 24 4
gpt4 key购买 nike

我想知道为什么当我使用 SQLite 管理器查看我的表时,我会看到这个奇怪的符号,其中有一个框在三个角封装了 3 个 0,在最后一个角封装了一个 3。如果我使用 QString,小时数我仍然能够像操作整数值一样操作小时数列吗?谢谢

void FirstWindow::on_pushButton_clicked()
{
FirstWindow conn;

QString rowid,Activity,thehours;
Activity=ui->lineEdit->text();
rowid=3;
thehours=1;

conn.connOpen();
QSqlQuery qry;
qry.prepare("insert into datatable (row,activity,hours) values('"+rowid+"','"+Activity+"','"+thehours+"')");

//if this is good
if(qry.exec())
{
this->hide();//hiding current ui
mainwindow = new MainWindow(this);
mainwindow->show();


conn.connClose(); //close after inserting another
}

最佳答案

首先,您的列是字符串还是整数?

我会检查 ui->lineEdit->text() 是否真的返回了一个数字。

其次,为您希望保存/加载的数据设置正确的列类型(整数、字符串、实数等)。这样 QSQLite 错误将更有帮助。

第三,您应该避免连接字符串来准备 sql 查询(假设 rowid 包含一个 ' 字符!)。最好的方法是使用 sqlite 占位符调用 prepare,然后添加值:

QSqlQuery qry;
qry.prepare("insert into datatable (row,activity,hours) values(?, ?, ?");
qry.addBindValue(rowid);
qry.addBindValue(Activity);
qry.addBindValue(thehours);

if(!qry.exec())
{
qDebug() << qry.lastError();
}

关于c++ - QT/SQLITE-数据库上的奇怪符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35286515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com