如何插入数据到sqlite使用qt

how to insert data into sqlite using qt

本文关键字:sqlite 使用 qt 数据 何插入 插入      更新时间:2023-10-16

如何使用qt将数据插入sqlite:

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

您可以修改代码,使查询看起来像这样,我认为这会澄清您的疑问:

准备查询语句

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;

插入数据将返回true,否则返回false

您可以在查询中调用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();
QSqlQuery query;
query.exec("INSERT INTO customer_details (rationcard_num,aadharcard_num,name)VALUES('"+rationcard_num+"','"+aadharcard_num+"','"+name+")");