C++ QT/SQLITE-数据库上的奇怪符号?
我想知道为什么当我使用SQLite管理器查看我的表时,我会得到这样一个奇怪的符号,其中一个框在三个角封装了3个0,而在最后一个角封装了一个3。如果我使用QString,小时数仍然可以像处理整数值一样处理小时数列吗?谢谢C++ QT/SQLITE-数据库上的奇怪符号?,c++,qt,sqlite,C++,Qt,Sqlite,我想知道为什么当我使用SQLite管理器查看我的表时,我会得到这样一个奇怪的符号,其中一个框在三个角封装了3个0,而在最后一个角封装了一个3。如果我使用QString,小时数仍然可以像处理整数值一样处理小时数列吗?谢谢 void FirstWindow::on_pushButton_clicked() { FirstWindow conn; QString rowid,Activity,thehours; Activity=ui->lineEdit->tex
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是否包含“字符!)。最好的方法是调用prepare with sqlite占位符,然后添加值:
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();
}
qsqlqueryqry;
q.准备(“插入数据表(行、活动、小时)值(?,?)”;
qry.addBindValue(rowid);
qry.addBindValue(活动);
qry.addBindValue(小时);
如果(!qry.exec())
{
qDebug()首先,列是字符串还是整数
我会检查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();
}
qsqlqueryqry;
q.准备(“插入数据表(行、活动、小时)值(?,?)”;
qry.addBindValue(rowid);
qry.addBindValue(活动);
qry.addBindValue(小时);
如果(!qry.exec())
{
qDebug()“QString rowid=3;”它是QString还是int?显然,它以包含字符U+0003的字符串结尾。“QString rowid=3;”它是QString还是int?显然,它以包含字符U+0003的字符串结尾。