QT与数据库连接实例与大家分享一下,数据库的连接的时候一般都会出现一些晓得问题,如果你也出现过问题,那么本文将会帮你解决问题。

本文介绍的是QT数据库连接实例,首先加载驱动db=QSqlDatabase::addDatabase("QODBC","db");//使用odbc数据库驱动,详细内容请看下文。

QT与数据库连接实例(qt和数据库连接)  QT 数据库 第1张

连接数据库需要的头文件:

  1. #include<QSqlDatabase>
  2. #include<QSqlQuery>

1、连接微软的Access

  1. QSqlDatabaseldb=QSqlDatabase::addDatabase("QODBC");
  2. ldb.setDatabaseName("DRIVER={MicrosoftAccessDriver(*.mdb)};FIL={MSAccess};DBQ=system.mdb;UID=;PWD=xiaozhuset");
  3. boolok=ldb.open();
  4. //新定义一个查询集合,并指定链接关键字。如果有多个连接,可以随意指定一个你需要的。
  5. QSqlQuerymquery=QSqlQuery::QSqlQuery(ldb);
  6. if(ok)
  7. {
  8. boolisok=mquery.exec("select*fromsql_set;");
  9. if(!isok)
  10. {
  11. ldb.close();
  12. return-1;
  13. }
  14. //这个是必须的,因为查处的结果集当前位置不在***条记录上。
  15. mquery.next();
  16. QStringsHostName=mquery.value(1).toString();
  17. QStringsDatabaseName=mquery.value(2).toString();
  18. QStringsUserName=mquery.value(3).toString();
  19. QStringsPassword=mquery.value(4).toString();
  20. //清除结果集
  21. mquery.clear();
  22. //如果该连接不再使用,就可以关闭。
  23. ldb.close();
  24. //这里是将从数据库读出的数据写到一个list控件里
  25. ui.list_out->insertItem(ui.list_out->count(),sHostName);
  26. ui.list_out->insertItem(ui.list_out->count(),sDatabaseName);
  27. }
  28. else
  29. {
  30. //打开本地数据库失败,
  31. QMessageBox::critical(0,QObject::tr("读取Access数据库错误!"),db.lastError().text());
  32. return-1;
  33. }

2、连接mssql2000 数据库

  1. QStringstrDatabaseName=QString("DRIVER={SQLServer};Server=(%1);Database=%2").arg("local").arg(sDatabaseName);
  2. db=QSqlDatabase::addDatabase("QODBC","db");//使用odbc数据库驱动
  3. db.setHostName(sHostName);
  4. db.setPort(1433);
  5. db.setDatabaseName(strDatabaseName);//我们之前建立的数据库连接关键字
  6. db.setUserName(sUserName);
  7. db.setPassword(sPassword);
  8. boolok=db.open();//尝试连接数据库
  9. if(ok)
  10. {
  11. menuset_set->dbdb=db;//这里用sa已经成功连上数据库
  12. return0;
  13. }
  14. else
  15. {
  16. //打开数据库失败,
  17. QMessageBox::critical(0,QObject::tr("数据库连接错误!"),db.lastError().text());
  18. return-2;
  19. }
  20. mssql2000数据库连接的使用和Access连接使用方法一样。
  21. QSqlQuerymquery=QSqlQuery::QSqlQuery(db);
  22. boolok1=mquery.exec("select*fromCarteMenu;");
  23. if(ok1==false)return-1;
  24. QStringmenu_mkey=mquery.value(13).toString();
  25. QStringstrmenu_lang=mquery.value(3).toString();
  26. //清除结果集
  27. mquery.clear();

3、连接mysql 数据库

  1. QSqlDatabasedb=QSqlDatabase::addDatabase("QMYSQL");//使用mysql数据库驱动
  2. db.setHostName("localhost");
  3. db.setDatabaseName("exampledb");//数据库名称
  4. db.setUserName("sa");//用户名
  5. db.setPassword("1");//密码
  6. boolok=db.open();//尝试连接数据库
  7. if(ok)
  8. {
  9. QSqlQuerymyquery;
  10. if(myquery.exec("select*fromemployeedb"))
  11. {
  12. intnum=0;
  13. if(db.driver()->hasFeature(QSqlDriver::QuerySize))
  14. {
  15. num=myquery.size();//如果支持结果影响的行数,那么直接记录下来
  16. }
  17. else
  18. {
  19. myquery.last();//否则定位到结果***
  20. num=myquery.at()+1;
  21. }
  22. //这里添加数据库的查询结果处理操作
  23. }
  24. else//如果查询失败
  25. {
  26. QSqlErrorerror=myquery.lastError();
  27. }
  28. }
  29. else//打开数据库失败
  30. {
  31. }

小结:QT数据库连接实例的内容介绍完了,对于数据库,本人觉得连接时要慎重点,好像很难连接似得,老是出错,不顾本篇文章相信能帮你解决问题。

转载请说明出处
知优网 » QT与数据库连接实例(qt和数据库连接)

发表评论

您需要后才能发表评论