VS+QT 连接SQL Server(c++)

目录

工具:

操作:

一、进行ODBC配置

二、在vs+qt中连接数据库

                  三、一些问题和解决方案


工具:

VS 2017

QT 5.10

Microsoft SQL Server 11.0.3

语言:c++

操作:

一、进行ODBC配置

1、在电脑左下角系统中搜索ODBC,打开ODBC数据源

2.添加新的数据源

3、添加SQL Server驱动程序

4、设置数据源信息

【名称】数据源名称,需要在vs+qt中调用,尽量简洁好记

【描述】可简单写,相当于备注

【服务器】写数据库实例名

5.与连接SQL server用户名和密码相同

 6、默认数据库设置为你需要用vs+qt所需要的DBS

 7、下一步连接成功

二、在vs+qt中连接数据库

1、在VS工具栏:工具->添加数据库->选择Microsoft ODBC 数据源->继续

使用用户名或系统数据源名称就是配置ODBC时所用到的数据源名称.

此步骤完成后只是将数据库添加到了vs中,需要调用数据库数据,进行数据库查询、插入、更新、删除等操作还需要写代码。

2、在项目中main文件下写代码调用数据库

//#include "interface.h" 我的qt类文件,与大家不同
#include <QtWidgets/QApplication>
#include<QString>
#include<QtSql/qsqldatabase.h>
#include<QtSql/qsqltablemodel.h>
#include<QtSql/qsqlerror.h>
#include<qsqlquery.h>//包含查询语言
#include <QApplication>			
#include <QDebug>
#include <QMessageBox>

bool OpenDatabase()
{
	QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");   //数据库驱动类型为SQL Server
	qDebug() << "ODBC driver" << db.isValid();
	db.setHostName("localhost");                        //选择本地主机,通用(最好不写数据库实例名)
	db.setDatabaseName("tt");                            //设置数据源名称(ODBC数据源名称)
	db.setUserName("sa");                               //登录用户
	db.setPassword("xxxxx");                           //密码
	
	if (!db.open())                                      //打开数据库失败
	{
		qDebug() << db.lastError().text();
		QMessageBox::critical(0, QObject::tr("Database error"), db.lastError().text());
		return false;                                   //打开失败
	}
	else
		qDebug() << "数据库打开成功!";
	return true;
}

//以下大家都有,添加打开数据库失败退出语句
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    interface w;//此处应该修改成你的类名
	if (!OpenDatabase())//打开数据库失败,返回
		return 1;
    w.show();
    return a.exec();
}

此时添加数据库就成功了,现在需要在界面中进行数据库调用操作的测试

三、一些问题和解决方案

对以上代码的说明:

1、运用Qt中自带的QSql、QSqlDatabase等类来连接数据库,在添加头文件时有两点注意事项:

(笔者最初用此方法失败,耗了长时间都没找到解决方法,在此总结一下)

1)注意头文件的添加方法

头文件是需要一个具体的文件,QtSql在Qt中是一个文件夹,里面包含了很多头文件,所以需要以QtSql/为前缀打开这个文件夹,再添加具体的类

#include<QtSql/qsqldatabase.h>
#include<QtSql/qsqltablemodel.h>
#include<QtSql/qsqlerror.h>

2)注意头文件添加前要在Qt中添加sql扩展模块(每次生成一个项目都要添加一次)

否则会报错,报错信息类似为:“无法打开源文件 QSQL”

【添加步骤】:

a、最上方菜单栏:工具->属性->Qt project settings

 

b、勾选Sql功能

这样完成设置后就不会报错了!

2、用纯c++代码连接数据库对初学者非常困难,用qt类的方法失败后笔者耗费大量时间寻找用c++连接方法,都因为各种各样的错误而放弃,从而重新去解决qt连接数据库遇到的问题。感谢CSDN众多博主的经验,让我成功连接上数据库,并且通过了简单的测试发现能调用数据库的数据。与此同时,在查询资料的过程中,我发现信息杂乱,一些文章写得模棱两可且有一定误导性,对初学者很不友好,因此打算总结一些经验分享给大家,让大家少走一些弯路。

后面会更新一些VS调用Sql查询语言,边摸索边记录。

  • 15
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值