千家信息网

QT访问QSqlite数据库的实例

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。QSqlDatabase对象象征了数据库的关联。Qt使用驱动
千家信息网最后更新 2024年09月21日QT访问QSqlite数据库的实例

QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。
QSqlDatabase对象象征了数据库的关联。Qt使用驱动程序与各种数据库的应用编程接口进行通信。Qt的桌面版(Desktop Edition)包括如下一些驱动程序:

驱动程序 数据库
QDB2 IBM DB2 7.1版以及更新的版本
QIBASE Borland InterBase
QMYSQL MySql
QOCI 甲骨文公司(Oracle Call Interface)
QODBC ODBC(包括微软公司的QSL服务)
QPSQL PostgreSQL的7.3版以及更高版本
QSQLITE QSLite第3版
QSQLITE2 QSLite第2版

QTDS Qybase自适应服务器


访问QSqlite数据库的实例:

步骤:

1、创建Qt控制台程序。
2、在pro问价中添加QT +=sql;
3、在main.cpp中添加如下代码:


[cpp] view plain copy print?

  1. #include

  2. #include

  3. #include

  4. #include

  5. #include

  6. #include

  7. #include

  8. #include

  9. #include

  10. int main(int argc, char *argv[])

  11. {

  12. QCoreApplication a(argc, argv);

  13. QSqlDatabase database = QSqlDatabase::addDatabase("QSQLITE");

  14. database.setDatabaseName("CashSystem.db");

  15. if(database.open())

  16. {

  17. qDebug()<<"Database Opened";

  18. QSqlQuery sql_query;

  19. QString create_sql = "create table member (id int primary key, name varchar(30), address varchar(30))"; //创建数据表

  20. QString insert_sql = "insert into member values(?,?,?)"; //插入数据

  21. QString select_all_sql = "select * from member";

  22. sql_query.prepare(create_sql); //创建表

  23. if(!sql_query.exec()) //查看创建表是否成功

  24. {

  25. qDebug()<"Table Create failed");

  26. qDebug()<

  27. }

  28. else

  29. {

  30. qDebug()<< "Table Created" ;

  31. //插入数据

  32. sql_query.prepare(insert_sql);

  33. QVariantList GroupIDs;

  34. GroupIDs.append(0);

  35. GroupIDs.append(1);

  36. GroupIDs.append(2);

  37. QVariantList GroupNames;

  38. GroupNames.append("hsp");

  39. GroupNames.append("rl");

  40. GroupNames.append("spl");

  41. QVariantList GroupAddress;

  42. GroupAddress.append("南充");

  43. GroupAddress.append("宝鸡");

  44. GroupAddress.append("南充");

  45. sql_query.addBindValue(GroupIDs);

  46. sql_query.addBindValue(GroupNames);

  47. sql_query.addBindValue(GroupAddress);

  48. if(!sql_query.execBatch())

  49. {

  50. qDebug()<

  51. }

  52. else

  53. {

  54. qDebug()<<"插入记录成功";

  55. }

  56. //查询所有记录

  57. sql_query.prepare(select_all_sql);

  58. if(!sql_query.exec())

  59. {

  60. qDebug()<

  61. }

  62. else

  63. {

  64. while(sql_query.next())

  65. {

  66. int id = sql_query.value(0).toInt();

  67. QString name = sql_query.value(1).toString();

  68. QString address = sql_query.value(2).toString();

  69. qDebug()<"ID:%1 Name:%2 Address:%3").arg(id).arg(name).arg(address);

  70. }

  71. }

  72. }

  73. }

  74. database.close();

  75. // QFile::remove("CashSystem.db");

  76. return a.exec();

  77. }



4、运行截图:



5、在项目的debug文件夹下,生成了对应的.db文件,使用navicat forSqlite工具打开,显示结果如下:


0