QT数据库SQLite3(2)

1050阅读 0评论2014-01-16 wenliang1387
分类:嵌入式

 今天研究一下使用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数据库进行操作的方法很简单,这对我们编写桌面数据库程序提供了很大方便。
上一篇:Qt拖放
下一篇:没有了