irpas技术客

Qt 连接并使用 SQL Sever数据库_太阳风暴_qt连接sqlserver数据库

大大的周 7022

Qt 连接 SQL Sever数据库 环境一、配置 ODBC数据源一、在SQL Sever Manger中添加 新的用户1. 打开如下自带的 MSS Management Studio2、登录时选择 Windows 身份验证3、去往 安全性-登录名 ,鼠标右键 新建登录名4、在 常规 中,选择 SQL Sever 身份验证并输入 自定义的用户名和密码;5、在用户映射中 选择需要映射的数据库和用户名6、在状态中 将如下选项选择 授予 启用 状态7、在 Navicat 中测试连接8、主机名获取9、配置主机 二、配置ODBC数据源1、打开ODBC数据源2、添加SQL Sever 数据源3、配置数据源描述4、选择用户名登录5、测试数据源6、浏览创建的数据源 【czyTest】 二、数据库连接连接一、数据库 sql 代码【含创建表和插入数据】二、Qt C++代码1、工程目录2、工程文件3、主函数文件4、运行结果 记录详细的连接 SQL Sever数据库的使用全过程

环境 系统: Windows 10 专业版Qt版本: Qt 5.14.2 【编译套件 MinGW 32】SQL Sever:SQL Sever 2019编程语言:C++ 一、配置 ODBC数据源 一、在SQL Sever Manger中添加 新的用户 1. 打开如下自带的 MSS Management Studio

2、登录时选择 Windows 身份验证

3、去往 安全性-登录名 ,鼠标右键 新建登录名

4、在 常规 中,选择 SQL Sever 身份验证并输入 自定义的用户名和密码;

【可以选上 默认数据库是哪一个需要用的数据库】

5、在用户映射中 选择需要映射的数据库和用户名

【确保 db_owner 勾选,否则能连接数据库,但是不能数据库 增删改查 操作】

6、在状态中 将如下选项选择 授予 启用 状态

7、在 Navicat 中测试连接

在连接中如下输入【主机名】【初始化数据库可以忽略】 [不知道主机名的可以看第 8 条记录] 连接成功

若出现连接失败【可以试一下 重置 czy 的密码(可为原密码)】 8、主机名获取

在开始按钮中找到 如下软件 在如下可以看到服务器主机 若没有 可以参考 [第 9 条 ]如下配置

9、配置主机

一、在SQL Sever 网络配置中 确保 TCP/IP 已启用,里面参数默认即可 双击 TCP/IP 在IP地址栏中能查看服务器的IP地址 以及端口, 当然也可以配置端口,我选择默认 二、SQL Native Client 配置中 别名 新建别名, 我创建了一个 localhost 的别名 三、在Navicat 中测试连接

二、配置ODBC数据源 1、打开ODBC数据源

2、添加SQL Sever 数据源

如下图配置

3、配置数据源描述

选择我们刚刚创建的 localhost 服务器

4、选择用户名登录

使用刚刚创建的 czy 账户 后面没啥变化就直接下一步

5、测试数据源

数据源测试成功

6、浏览创建的数据源 【czyTest】

二、数据库连接连接 一、数据库 sql 代码【含创建表和插入数据】

【可能需要删除部分代码,请自行删减】

-- ---------------------------- -- Table structure for LoginHistory_TB -- ---------------------------- CREATE TABLE [dbo].[LoginHistory_TB] ( [ID] int NULL, [LoginName] nvarchar(254) COLLATE Chinese_PRC_CI_AS NULL, [LoginTime] nvarchar(254) COLLATE Chinese_PRC_CI_AS NULL, [LogoutTime] nvarchar(254) COLLATE Chinese_PRC_CI_AS NULL, [Operation] int NULL ) GO ALTER TABLE [dbo].[LoginHistory_TB] SET (LOCK_ESCALATION = TABLE) GO -- ---------------------------- -- Records of LoginHistory_TB -- ---------------------------- INSERT INTO [dbo].[LoginHistory_TB] ([ID], [LoginName], [LoginTime], [LogoutTime], [Operation]) VALUES (N'1', N'卫雪', N'2021/1/8-08:32:49', N'2021/1/8-12:32:49', N'1111') GO INSERT INTO [dbo].[LoginHistory_TB] ([ID], [LoginName], [LoginTime], [LogoutTime], [Operation]) VALUES (N'2', N'夹谷利', N'2021/1/8-08:32:50', N'2021/1/8-12:32:50', N'11') GO INSERT INTO [dbo].[LoginHistory_TB] ([ID], [LoginName], [LoginTime], [LogoutTime], [Operation]) VALUES (N'3', N'牧彩', N'2021/1/8-08:32:61', N'2021/1/8-12:32:51', N'1') GO INSERT INTO [dbo].[LoginHistory_TB] ([ID], [LoginName], [LoginTime], [LogoutTime], [Operation]) VALUES (N'4', N'祖燕', N'2021/1/8-08:32:62', N'2021/1/8-12:32:52', N'111') GO INSERT INTO [dbo].[LoginHistory_TB] ([ID], [LoginName], [LoginTime], [LogoutTime], [Operation]) VALUES (N'5', N'傅智祥', N'2021/1/8-08:32:53', N'2021/1/8-12:32:53', N'111') GO INSERT INTO [dbo].[LoginHistory_TB] ([ID], [LoginName], [LoginTime], [LogoutTime], [Operation]) VALUES (N'6', N'金孝伯', N'2021/1/8-08:35:54', N'2021/1/8-12:32:54', N'1') GO INSERT INTO [dbo].[LoginHistory_TB] ([ID], [LoginName], [LoginTime], [LogoutTime], [Operation]) VALUES (N'7', N'谷宰玉媛', N'2021/1/8-08:35:55', N'2021/1/8-12:32:55', N'1111') GO INSERT INTO [dbo].[LoginHistory_TB] ([ID], [LoginName], [LoginTime], [LogoutTime], [Operation]) VALUES (N'8', N'冀韵', N'2021/1/8-08:32:56', N'2021/1/8-12:32:56', N'1') GO INSERT INTO [dbo].[LoginHistory_TB] ([ID], [LoginName], [LoginTime], [LogoutTime], [Operation]) VALUES (N'9', N'夹谷利', N'2021/1/8-08:32:57', N'2021/1/8-12:32:57', N'1') GO INSERT INTO [dbo].[LoginHistory_TB] ([ID], [LoginName], [LoginTime], [LogoutTime], [Operation]) VALUES (N'10', N'牧彩', N'2021/1/8-08:32:58', N'2021/1/8-12:32:58', N'1111') GO INSERT INTO [dbo].[LoginHistory_TB] ([ID], [LoginName], [LoginTime], [LogoutTime], [Operation]) VALUES (N'11', N'祖燕', N'2021/1/8-08:32:59', N'2021/1/8-12:32:59', N'11') GO INSERT INTO [dbo].[LoginHistory_TB] ([ID], [LoginName], [LoginTime], [LogoutTime], [Operation]) VALUES (N'12', N'祖燕', N'2021/1/8-08:33:00', N'2021/1/8-12:32:00', N'1111') GO 二、Qt C++代码 1、工程目录

2、工程文件 QT -= gui QT += sql core CONFIG += c++11 console CONFIG -= app_bundle DEFINES += QT_DEPRECATED_WARNINGS SOURCES += \ main.cpp # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target 3、主函数文件 //main.cpp #include <QCoreApplication> #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> #include <QDebug> int main(int argc, char *argv[]) { //数据库配置 QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setHostName("localhost"); // 服务器名称 db.setDatabaseName("czyTest"); // 数据源名称 db.setUserName("czy"); // 用户名 db.setPassword("202128you"); // 密码 //数据库连接 bool ok = db.open(); if(ok) { qDebug()<<"DataBase open sucess!"; } else { qDebug()<<db.lastError(); } //数据库查询 QSqlQuery query("SELECT * FROM LoginHistory_TB;"); qDebug()<<"ID LoginName LoginTime LogoutTime OPeration"; while (query.next()) { int ID = query.value(0).toInt(); QString LoginName = query.value(1).toString(); QString LoginTime = query.value(2).toString(); QString LogoutTime = query.value(3).toString(); int OPeration = query.value(4).toInt(); qDebug()<<QString("%1 %2 %3 %4 %5") .arg(ID).arg(LoginName).arg(LoginTime).arg(LogoutTime).arg(OPeration); } //数据库关闭 db.close(); return 0; } 4、运行结果 DataBase open sucess! ID LoginName LoginTime LogoutTime OPeration "1 卫雪 2021/1/8-08:32:49 2021/1/8-12:32:49 1111" "2 夹谷利 2021/1/8-08:32:50 2021/1/8-12:32:50 11" "3 牧彩 2021/1/8-08:32:61 2021/1/8-12:32:51 1" "4 祖燕 2021/1/8-08:32:62 2021/1/8-12:32:52 111" "5 傅智祥 2021/1/8-08:32:53 2021/1/8-12:32:53 111" "6 金孝伯 2021/1/8-08:35:54 2021/1/8-12:32:54 1" "7 谷宰玉媛 2021/1/8-08:35:55 2021/1/8-12:32:55 1111" "8 冀韵 2021/1/8-08:32:56 2021/1/8-12:32:56 1" "9 夹谷利 2021/1/8-08:32:57 2021/1/8-12:32:57 1" "10 牧彩 2021/1/8-08:32:58 2021/1/8-12:32:58 1111" "11 祖燕 2021/1/8-08:32:59 2021/1/8-12:32:59 11" "12 祖燕 2021/1/8-08:33:00 2021/1/8-12:32:00 1111"


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #qt #连接 #SQL #Sever数据库环境一配置 #ODBC数据源一在SQL #sever #Manger中添加