QT与数据库连接实例与大家分享一下,数据库的连接的时候一般都会出现一些晓得问题,如果你也出现过问题,那么本文将会帮你解决问题。
本文介绍的是QT与数据库连接实例,首先加载驱动db=QSqlDatabase::addDatabase("QODBC","db");//使用odbc数据库驱动,详细内容请看下文。
连接数据库需要的头文件:
- #include<QSqlDatabase>
- #include<QSqlQuery>
1、连接微软的Access
- QSqlDatabaseldb=QSqlDatabase::addDatabase("QODBC");
- ldb.setDatabaseName("DRIVER={MicrosoftAccessDriver(*.mdb)};FIL={MSAccess};DBQ=system.mdb;UID=;PWD=xiaozhuset");
- boolok=ldb.open();
- //新定义一个查询集合,并指定链接关键字。如果有多个连接,可以随意指定一个你需要的。
- QSqlQuerymquery=QSqlQuery::QSqlQuery(ldb);
- if(ok)
- {
- boolisok=mquery.exec("select*fromsql_set;");
- if(!isok)
- {
- ldb.close();
- return-1;
- }
- //这个是必须的,因为查处的结果集当前位置不在***条记录上。
- mquery.next();
- QStringsHostName=mquery.value(1).toString();
- QStringsDatabaseName=mquery.value(2).toString();
- QStringsUserName=mquery.value(3).toString();
- QStringsPassword=mquery.value(4).toString();
- //清除结果集
- mquery.clear();
- //如果该连接不再使用,就可以关闭。
- ldb.close();
- //这里是将从数据库读出的数据写到一个list控件里
- ui.list_out->insertItem(ui.list_out->count(),sHostName);
- ui.list_out->insertItem(ui.list_out->count(),sDatabaseName);
- }
- else
- {
- //打开本地数据库失败,
- QMessageBox::critical(0,QObject::tr("读取Access数据库错误!"),db.lastError().text());
- return-1;
- }
2、连接mssql2000 数据库
- QStringstrDatabaseName=QString("DRIVER={SQLServer};Server=(%1);Database=%2").arg("local").arg(sDatabaseName);
- db=QSqlDatabase::addDatabase("QODBC","db");//使用odbc数据库驱动
- db.setHostName(sHostName);
- db.setPort(1433);
- db.setDatabaseName(strDatabaseName);//我们之前建立的数据库连接关键字
- db.setUserName(sUserName);
- db.setPassword(sPassword);
- boolok=db.open();//尝试连接数据库
- if(ok)
- {
- menuset_set->dbdb=db;//这里用sa已经成功连上数据库
- return0;
- }
- else
- {
- //打开数据库失败,
- QMessageBox::critical(0,QObject::tr("数据库连接错误!"),db.lastError().text());
- return-2;
- }
- mssql2000数据库连接的使用和Access连接使用方法一样。
- QSqlQuerymquery=QSqlQuery::QSqlQuery(db);
- boolok1=mquery.exec("select*fromCarteMenu;");
- if(ok1==false)return-1;
- QStringmenu_mkey=mquery.value(13).toString();
- QStringstrmenu_lang=mquery.value(3).toString();
- //清除结果集
- mquery.clear();
3、连接mysql 数据库
- QSqlDatabasedb=QSqlDatabase::addDatabase("QMYSQL");//使用mysql数据库驱动
- db.setHostName("localhost");
- db.setDatabaseName("exampledb");//数据库名称
- db.setUserName("sa");//用户名
- db.setPassword("1");//密码
- boolok=db.open();//尝试连接数据库
- if(ok)
- {
- QSqlQuerymyquery;
- if(myquery.exec("select*fromemployeedb"))
- {
- intnum=0;
- if(db.driver()->hasFeature(QSqlDriver::QuerySize))
- {
- num=myquery.size();//如果支持结果影响的行数,那么直接记录下来
- }
- else
- {
- myquery.last();//否则定位到结果***
- num=myquery.at()+1;
- }
- //这里添加数据库的查询结果处理操作
- }
- else//如果查询失败
- {
- QSqlErrorerror=myquery.lastError();
- }
- }
- else//打开数据库失败
- {
- }
小结:QT与数据库连接实例的内容介绍完了,对于数据库,本人觉得连接时要慎重点,好像很难连接似得,老是出错,不顾本篇文章相信能帮你解决问题。
转载请说明出处
知优网 » QT与数据库连接实例(qt和数据库连接)
知优网 » QT与数据库连接实例(qt和数据库连接)