Qt Quick中如何打开一个本地数据库

Qt Quick中如何打开一个本地数据库,第1张

//打开数据库

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

dbsetDatabaseName("nmrdb");

if (!dbopen())

{

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=indexdata()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);

}

个数据库里面出来的数据你做过吗?

QVariant myModel::data(constQModelIndex&index,introle)const

int myModel::rowCount(constQModelIndex&parent)const

保证这两个函数正确 就可以实现吧 反正你自己处理数据啊 一个表两个表只是视图的不同

在使用Qt编写应用程序时,如果您想获取最后一个插入的记录的ID,可以使用以下方法:

1 在插入新记录之前,请确保您的表中有一个主键列,并将其设置为自增长(即自动增加)类型。

2 在执行INSERT语句时,使用数据库驱动程序提供的lastInsertId()函数来获取刚刚插入的记录的ID。例如,在SQLite中,您可以使用“SELECT last_insert_rowid()”查询最后插入行的ID。

3 如果您使用的是模型/视图框架(例如QSqlTableModel或QSqlQueryModel),则可以使用model->query()lastInsertId()或者model->record(row)value("id")toInt()来获取插入记录的ID。其中,“id”是您的表中的主键列名称。

需要注意的是,不同的数据库驱动程序和 *** 作系统可能会有所不同,因此具体的实现可能会因平台而异。同时,在处理敏感信息时,请务必遵循安全的编程实践,例如使用参数化查询等技术来防止SQL注入攻击。

/连接数据库/QSqlDatabasedb=QSqlDatabase::addDatabase("QSQLITE");if(QFile::exists("/ll_mintordb")==true){dbsetDatabaseName("/ll_mintordb");dbopen();}else{dbsetDatabaseName("/ll_mintordb");dbopen();createDataTable();//创建数据表}

voidcreateDataTable(){QSqlQueryquery;QStringcmd;/创表/cmd=QString("CREATETABLEIFNOTEXISTSTB_Camera("CameraCol_UserNameCHAR(255)NULL,""CameraCol_PasswordCHAR(255)NULL,""CameraCol_NameCHAR(255)NULL,""CameraCol_ConnIpAddressCHAR(64)NULL);");queryexec(cmd);}

以上就是关于Qt Quick中如何打开一个本地数据库全部的内容,包括:Qt Quick中如何打开一个本地数据库、怎么用QT做一个像数据库管理软件那样可以编辑的表,用什么控件,tableview吗、qt怎么获取当前添加到数据库的id等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9337800.html

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

发表评论

登录后才能评论

评论列表(0条)

保存