QT 提取数据库中的信息

asasdaf 2011-02-21 11:48:14
刚刚学习QT,有个小问题
就是怎么调出数据库中的,利用查询语句查询出几个信息,怎么显示到一个对话框。
比如说显示一个数据到line Edit控件
或者显示几个数据集合到一个什么控件?
不知道什么描述呀,我看网上的内容都是怎么连接数据库的。没有调用呀。
...全文
1024 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
maloudatime 2012-11-23
  • 打赏
  • 举报
回复
引用 1 楼 pcsuite 的回复:
如果你只想要某个查询结果,那么你可以通过连接数据库,然后查询得到结果,再调用某个空间的显示方法将结果显示出来。 例子: QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName(数据库名); if (!db.open()) { ……
while(query.next())括号内能给个详细的例子吗?
gemfield 2011-04-19
  • 打赏
  • 举报
回复
qtsdk中的examples里完全有你的例子
dragonfever 2011-04-18
  • 打赏
  • 举报
回复
请问2楼,能不能给个qt3中的使用例子?
ljz0919 2011-02-23
  • 打赏
  • 举报
回复
我自己的一段代码,用的sqlite数据库,就是一文件。
static bool createDbConnection()
{

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("D:/SqliteDatabase/syspara");
if (!db.open()) {
QMessageBox::critical(0, qApp->tr("Cannot open database"),
qApp->tr("Unable to establish a database connection.\n"
"This example needs QSQLITE support. Please read "
"the Qt SQL driver documentation for information how "
"to build it.\n\n"
"Click Cancel to exit."), QMessageBox::Cancel);
return false;
}
return true;
}

上段代码可在程序初始化的时候调用,主要是连接数据库,当然要先建立对应的sqlite数据库文件。

下段代码是查询:(比如点击了一个按钮)

void MainWindow::on_pBtnShowTable_clicked()
{
// QDate date = ui->dateEdit->date();
int intyear = ui->dateEdit->date().year();
int intmonth = ui->dateEdit->date().month();
int intday = ui->dateEdit->date().day();
// QString dateStr = ui->dateEdit->date().toString("yyyy-MM-dd");
QSqlTableModel *model = new QSqlTableModel(this);
model->setTable("failtb");
model->setHeaderData(0,Qt::Horizontal,tr("年"));
model->setHeaderData(1,Qt::Horizontal,tr("月"));
model->setHeaderData(2,Qt::Horizontal,tr("日"));
model->setHeaderData(3,Qt::Horizontal,tr("时间"));
model->setHeaderData(4,Qt::Horizontal,tr("描述"));

model->setFilter("year="+QString::number(intyear));//
model->setFilter("month="+QString::number(intmonth));//
model->setFilter("day="+QString::number(intday));//

model->select();
ui->tableView->setModel(model);
ui->tableView->resizeColumnsToContents();
}

自己琢磨一下。
pcsuite 2011-02-21
  • 打赏
  • 举报
回复
如果你只想要某个查询结果,那么你可以通过连接数据库,然后查询得到结果,再调用某个空间的显示方法将结果显示出来。
例子:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(数据库名);
if (!db.open()) {
return false;
}
QSqlQuery query;
query.exec("select * from 表名");
QSqlRecord rec = query.record();
while (query.next())
{
通过遍历查询到的结果找到自己想要的,然后可以将此值传递给指定的控件,并将其显示。
}
不知道是不是你想要的。
除此之外还可以通过model/view模型将数据库中的信息全部显示在控件(列表,表格)中。

16,211

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧