ArmFans123 发表于 2012-7-30 16:06:58

QSqlite数据库程序问题

本帖最后由 TQ-lkp 于 2012-7-31 09:36 编辑

写了个QSplite数据库程序:

#include <QApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlDriver>
#include <QSqlRecord>
#include <QSqlField>
#include <QDebug>
#include <QVariant>
#include <QStringList>
#include <QMessageBox>


static bool createConnection()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","c1");
    db.setDatabaseName("my1.db");
    if(!db.open())
    {
      QMessageBox::critical(0, "can't open database", "unable to connect", QMessageBox::Cancel);
      return false;
    }

    QSqlQuery query(db);

   qDebug<<"create table :";
    query.exec("create table student (id int primary key, "
             "name varchar(20))");
    query.exec("insert into student values(0, 'LiMing')");
    query.exec("insert into student values(1, 'LiuTao')");
    query.exec("insert into student values(2, 'WangHong')");

   return 1;
}

int main(int argc , char *argv[])
{
    int numRows;

    QApplication a(argc,argv);
    qDebug()<<"DRIVER:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver ,drivers)
      qDebug()<<driver;

    if(!createConnection())return 1;

    QSqlDatabase db = QSqlDatabase::database("c1");
    QSqlQuery query(db);

    query.exec("select * from student");
    while(query.next())
    {
      qDebug() << query.value(0).toInt() << query.value(1).toString();
    }
}

执行后打印
DRIVER:
"QSQLITE"
create table

无法读取表内容,不知为何?

TQ-lkp 发表于 2012-7-31 09:38:12

你缺少了打开数据库的代码,参考我们提供的源码

ArmFans123 发表于 2012-7-31 10:36:57

请问下 你们提供的源码 在哪里呢? 谢谢
页: [1]
查看完整版本: QSqlite数据库程序问题