2014-07-04 21 views
1

将数据插入到sqlite的如何使用qt将数据插入sqlite如何用qt

query = QSqlQuery("INSERT INTO customer_details (rationcard_num, aadharcard_num, name) 
    values('"+rationcard_num+"','"+aadharcard_num+"','"+name+"')"); 
+0

数据有什么用,这个问题这将返回true码? –

+0

我提供了一个严格遵循官方Qt文档的工作示例。如果它解决了你的问题(我相信它确实如此),那么请接受答案。这将有助于未来的参考。 – Abrar

回答

1

你也许可以致电查询exec()或直接与exec(const QString& query)调用它。因此,例如,你可以这样做:

QSqlQuery query; 
query.exec("INSERT INTO customer_details (rationcard_num, aadharcard_num, name)" 
      + "values('" + rationcard_num + "','" + aadharcard_num + "','" 
      + name + "')"); 

然而,如果你想使用一个事先准备好的声明你想构建一个QSqlDatabase查询,调用该prepare(statement)并绑定值。例如:

QSqlQuery query; 
query.prepare("INSERT INTO person (rationcard_num, aadharcard_num, name) " 
       "VALUES (:rationcard_num, :aadharcard_num, :name)"); 
query.bindValue(":rationcard_num", rationcard_num); 
query.bindValue(":aadharcard_num", aadharcard_num); 
query.bindValue(":name", name); 
query.exec(); 
4

您可以修改您的代码并查询这个样子的,我认为这将澄清你的疑虑:

准备查询语句

QSqlQuery query; 
query.prepare("INSERT INTO customer_details(rationcard_num, aadharcard_num, name) values(:rationcard_num,:aadharcard_num,name)"); 

绑定值

query.bindValue(":rationcard_num",your_value); 
query.bindValue(":aadharcard_num",your_value); 
query.bindValue(":name",your_value); 

调试

您可以使用qDebug()找到,如果您的查询是可执行文件:

qDebug()<<query.exec()<<endl; 

如果插入,否则为假

0
QSqlQuery query; 
query.exec("INSERT INTO customer_details (rationcard_num,aadharcard_num,name)VALUES('"+rationcard_num+"','"+aadharcard_num+"','"+name+")");