Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61746
  • 博文数量: 16
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 101
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-07 16:05
文章分类

全部博文(16)

文章存档

2013年(16)

我的朋友

分类: 嵌入式

2013-08-07 16:09:17

原文地址:QT数据库SQLite3(2) 作者:张银刚

 今天研究一下使用Qt编程对Sqlite数据库进行操作,算是一个Qt操作Sqlite示例,程序实现的功能比较简单,希望能够帮助大家了解Qt编程对Sqlite数据库进行操作的基本方法。

  Qt操作Sqlite示例程序的界面截图如下:

   634987136845615234(1).jpg 

  Qt操作Sqlite示例程序对数据库的操作包括4个字段:ID、Name、Addr、Nick(注意第一个字段必须是整数)。

  一共三个按钮,query、insert、delete按钮分别实现查询、插入、删除功能。

  一、查询按钮的实现:
  1. void database::on_QueryButton_clicked() 

  2.     QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
  3.     db.setDatabaseName("test.db"); 
  4.     bool ok = db.open(); 
  5.     if (ok == true) 
  6.     { 
  7.         QSqlQuery query; 
  8.         query.exec("SELECT * from info"); 
  9.         QString string; 
  10.         while (query.next()) 
  11.         { 
  12.             QString id = query.value(0).toString(); 
  13.             qDebug()  << string += id + "\n"; 
  14.             QString name = query.value(1).toString(); 
  15.             string += name + "\n"; 
  16.         } 
  17.         qDebug() << ui->TextEdit->setText(string); 
  18.     } 
  19.     else 
  20.     { 
  21.         QMessageBox::information(this, "ERROR", "open database error"); 
  22.     } 
  23.     db.close(); 
  24. }
复制代码
二、插入按钮的实现:
  1. void database::on_InsertButton_clicked() 

  2.     QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
  3.     db.setDatabaseName("test.db"); 
  4.     bool ok = db.open(); 
  5.     if (ok == true) 
  6.     { 
  7.         QSqlQuery query; 
  8.         query.prepare("INSERT INTO info (id, name) " 
  9.                   "VALUES (:id, :name)"); 
  10.         query.bindValue(":id", ui->IdEdit->text().toInt()); 
  11.         query.bindValue(":name", ui->NameEdit->text()); 
  12.         query.exec(); 
  13.         ui->IdEdit->clear(); 
  14.         ui->NameEdit->clear(); 
  15.         this->on_QueryButton_clicked(); 
  16.     } 
  17.     else 
  18.     { 
  19.         QMessageBox::information(this, "ERROR", "open database error"); 
  20.     } 
  21.     db.close(); 
  22. }
复制代码
三、删除按钮的实现:
  1. void database::on_DeleteButton_clicked() 

  2.     QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
  3.     db.setDatabaseName("test.db"); 
  4.     bool ok = db.open(); 
  5.     if (ok == true) 
  6.     { 
  7.         QSqlQuery query; 
  8.         QString command="DELETE FROM info WHERE "; 
  9.         if (ui->IdEdit->text().isEmpty() == false) 
  10.         { 
  11.             command.append("id="+ui->IdEdit->text()); 
  12.             query.exec(command); 
  13.         } 
  14.         else if (ui->NameEdit->text().isEmpty() == false) 
  15.         { 
  16.             command +="name=\'" + ui->NameEdit->text() + "\'"; 
  17.             qDebug() << query.exec(command); 
  18.         } 
  19.         else 
  20.         { 
  21.             QMessageBox::information(this, "ERROR", "open database ok! delete error"); 
  22.         } 
  23.         ui->IdEdit->clear(); 
  24.         ui->NameEdit->clear(); 
  25.         this->on_QueryButton_clicked(); 
  26.     } 
  27.     else 
  28.     { 
  29.         QMessageBox::information(this, "ERROR", "open database error"); 
  30.     } 
  31.     db.close(); 
  32. }
复制代码
通过上面的示例代码,我们发现,其实使用Qt编程对Sqlite数据库进行操作的方法很简单,这对我们编写桌面数据库程序提供了很大方便。
阅读(1069) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~