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

QT/SQLITE- Weird symbol on database?

本文关键字:符号 数据库 SQLITE QT      更新时间:2023-10-16

我想知道为什么当我使用 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();
}