//打开数据库
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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)