如何将字符串值从 .csv 插入 SQLite 数据库? Qt C++
Posted
技术标签:
【中文标题】如何将字符串值从 .csv 插入 SQLite 数据库? Qt C++【英文标题】:How can I insert string value from .csv to SQLite database? Qt c++ 【发布时间】:2021-12-02 02:29:16 【问题描述】:此代码可以成功地将 .csv 文件中的整数值插入 SQLite 数据库。但是,当值是字符串时。它不插入字符串值。请帮忙。
QFile f(csvFile);
if(f.open (QIODevice::ReadOnly))
QSqlQuery que;
QTextStream ts (&f);
//Travel through the csv file "excel.csv"
while(!ts.atEnd())
QString req = "INSERT INTO main VALUES(";
QStringList line = ts.readLine().split(',');
for(int i=0; i<line .length ();++i)
req.append(line.at(i));
req.append(",");
req.chop(1); // remove the trailing comma
req.append(");"); // close the "VALUES([...]" with a ");"
que.exec(req);
qDebug()<<req;
que.lastError();
qDebug()
"插入主值(1,2,3);" "插入主值(a,b,c);"
【问题讨论】:
"INSERT INTO main VALUES(a,b,c);"
需要引用文本。
为避免此类错误,最重要的是避免任何 SQL 注入风险,切勿使用变量值构建 SQL 语句,而是使用准备好的语句。我不知道 Qt 如何处理 SQLite 准备好的语句,但肯定有一种方法,可能比你的代码更简单。
【参考方案1】:
根据 Prapin 的回答,我决定写一个快速的方法。
这里是 QT SQL statement documentation 的链接。有多种查询数据库的方法。我个人是#2“命名绑定”而不是#3“位置绑定”的粉丝。这是因为程序员非常清楚正在访问哪些值。
【讨论】:
以上是关于如何将字符串值从 .csv 插入 SQLite 数据库? Qt C++的主要内容,如果未能解决你的问题,请参考以下文章
使用 c# 代码在更短的时间内将批量 CSV 数据插入 SQLite
如何使用参数化输入将 NULL 值从 nodeJS/javascript 插入 MySQL?
如何将字符串插入 sQlite.sdb (FireDac)?
如何将值从我的 Laravel 应用程序的 Sqlite 数据库传递到 .js 文件以允许 Paypal Checkout 按钮起作用?