我需要了解使用setDatabase(" dbname")函数创建sqlite数据库的位置

时间:2017-02-28 12:48:30

标签: qt

我正在创建一个数据库应用程序。我的代码运行正常。但我找不到创建的数据库。我也找不到sqlite consol窗口了。它只显示我手动创建的内容。

这是我的代码:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("student.db");
    db.open ();

    //check
    qDebug() << "Database is open: " << db.isOpen ();
    qDebug() << "Database is valid: " << db.isValid ();

    //database open or not
    if (!db.open())
    {
        qDebug() << "Error: connection with database failed";
    }
    else
    {
        qDebug() << "Database: connection ok";
    }

    //create query
    QSqlQuery query;

    //create tables
    query.prepare ("CREATE TABLE student_info(sid integer primary key, name text)");

    //insert data
    query.prepare ("INSERT INTO student_info VALUES(1, 'Hasibul')");
    query.prepare ("INSERT INTO student_info VALUES(2, 'Hasib')");
    query.prepare ("INSERT INTO student_info VALUES(3, 'Hasan')");

    //query all data
    query.prepare ("SELECT * FROM student_info");

    //execute query
    if(!query.exec ()){
        QMessageBox::critical (this, "Database Error!", query.lastQuery (), QMessageBox::Ok);
    } else {
        QMessageBox::information (this, "Database Information!", "Successful.", QMessageBox::Ok);
    }

    //find data from database and print
    while(query.next ()){
        int id = query.value (0).toInt ();
        QString name = query.value (1).toString ();

        qDebug() << id << name << endl;
    }

    //after finish work close database
    db.close ();

我创建了loan_manager.db,但我不知道如何连接setDatabaseName();有没有办法连接现有的数据库?感谢

1 个答案:

答案 0 :(得分:1)

setDatabaseName对不同的数据库后端意味着不同的东西。对于SQLITE,它意味着:“设置数据库文件名”

  

如何连接到我使用sqlite创建的现有数据库。

绝对路径提供给setDatabaseName