Qt怎么打开指定文件夹下的SQLite数据文件

Qt怎么打开指定文件夹下的SQLite数据文件,第1张

首先,你的数据库肯定是跟着你的程序跑的,你不能指定你程序一定要用户放到D盘下面,也许用户喜欢把程序放到E盘下面呢。所以你在指定的时候最好用相对路径,假设你程序运行目录是在bin下面,你可以在bin下面创建一个data目录专门用来保存数据库,你指定目录的时候就可以

db.setDatabaseName("./data/student.db")//这样指定。

//打开数据库

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE")

db.setDatabaseName("nmr.db")

if (!db.open())

{

QMessageBox::critical(0, qApp->tr("Cannot open database"),

qApp->tr("Unable to establish a database connection.\n"

"This example needs SQLite support. Please read "

"the Qt SQL driver documentation for information how "

"to build it.\n\n"

"Click Cancel to exit."), QMessageBox::Cancel)

return false

}

//建个QListView显示数据库中的表

//显示数据表

void MainWindow::listDb()

{

dbListModel =new QStringListModel()

dbListModel->setStringList(QSqlDatabase::database().tables())

ui->listView->setModel(dbListModel)

ui->listView->setEditTriggers(QAbstractItemView::NoEditTriggers)

ui->listView->setResizeMode(QListView::Adjust)

connect(ui->listView,SIGNAL(clicked(QModelIndex)),this,SLOT(showDb(QModelIndex)))

}

//SLOT:数据显示在QTabelView控件中

void MainWindow::showDb(QModelIndex index)

{

dbName=index.data().toString()

tableViewModel=new QSqlTableModel(this)

tableViewModel->setTable(dbName)

tableViewModel->select()//???????????????????????

ui->dbTable->setSortingEnabled(true)

ui->dbTable->setModel(tableViewModel)

ui->dbTable->sortByColumn(1,Qt::AscendingOrder)

ui->dbTable->resizeColumnsToContents()

ui->dbTable->setSelectionBehavior(QAbstractItemView::SelectRows)

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9614165.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存