Visual Studio2022连接SQL Server数据库
本文基于Visual Studio2022和SQL Server2008通过ODBC将数据库与后端连接在一起。
一、软件准备
1. 安装Visual Studio2022
- Visual Studio2022安装包下载官网,点击免费下载
- 下载完安装包,双击安装包,点击继续
- 这里勾选使用C++的桌面开发和数据存储和处理。有需要更改默认安装路径的要在第3步更改,不需要无需做第3步
- 点击继续
- 点击确定
二、环境配置
1. 创建数据库
- 点击新建查询
- 复制下面代码执行,创建数据库
CREATEDATABASE[Test]ONPRIMARY( NAME = N'Test', FILENAME = N'D:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Test.mdf', SIZE =3072KB , FILEGROWTH =1024KB )
LOG ON( NAME = N'Test_log', FILENAME = N'D:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Test_log.ldf', SIZE =1024KB , FILEGROWTH =10%)
GO
use Test
go
createtable baseInfor(noint, name char(20), passWord char(10), other char(20))
go
insertinto baseInfor values(1001,'学生1','1001','计算机科学与技术'),(1001,'老师1','1001','讲师'),(2001,'管理员','2001','管理员')
go
2. 利用ODBC建立连接
- 在搜索框搜索ODBC,选择对应的位数。本例以ODBC64位为例
- 进去应用,点击添加
- 选择SQL Server
- 名称填数据库名,服务器复制刚进去SQL Server的服务器名称(如下图),点击完成
- 点击下一页
- 这里方框中要选中刚才创建的数据库
- 点击测试数据源
- 如果显示如下图的样子,恭喜你第一步成功,如果不是,请对照以上步骤,看哪里做错了
三、连接数据库
1. Visual Studio2022测试连接数据库
- 新建项目后,先点击调试,后点击工程的调试属性
- 点击高级
- 将字符集,修改为使用多字节字符集
- 测试代码,如果显示如下图结果,恭喜你数据库连接成功了
#include<stdio.h>#include<string.h>#include<windows.h>#include<sql.h>#include<sqlext.h>#include<sqltypes.h>
SQLRETURN ret;
SQLHENV henv;
SQLHDBC hdbc;
SQLHSTMT hstmt;voidConnect(){
ret =SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE,&henv);
ret =SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3, SQL_IS_INTEGER);
ret =SQLAllocHandle(SQL_HANDLE_DBC, henv,&hdbc);
ret =SQLConnect(hdbc,(unsignedchar*)"Test", SQL_NTS,(unsignedchar*)"sa", SQL_NTS,(unsignedchar*)"", SQL_NTS);if(!(ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO)){printf("连接数据库失败!\n");return;}
ret =SQLAllocHandle(SQL_HANDLE_STMT, hdbc,&hstmt);}voidfree(){SQLDisconnect(hdbc);SQLFreeHandle(SQL_HANDLE_DBC, hdbc);SQLFreeHandle(SQL_HANDLE_ENV, henv);}voidshowStu(){Connect();SQLPrepare(hstmt,(SQLCHAR*)("select * from Test.dbo.baseInfor"), SQL_NTS);
ret =SQLExecute(hstmt);if(ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO){
SQLCHAR str1[20], str2[20], str3[20], str4[20];
SQLLEN len_str1, len_str2, len_str3, len_str4;while(SQLFetch(hstmt)!= SQL_NO_DATA){SQLGetData(hstmt,1, SQL_C_CHAR, str1,20,&len_str1);SQLGetData(hstmt,2, SQL_C_CHAR, str2,20,&len_str2);SQLGetData(hstmt,3, SQL_C_CHAR, str3,20,&len_str3);SQLGetData(hstmt,4, SQL_C_CHAR, str4,20,&len_str4);printf("%s\t%s\t%s\t%s\n", str1, str2, str3, str4);}}free();}intmain(){showStu();return0;}
本文转载自: https://blog.csdn.net/weixin_56117589/article/details/122457166
版权归原作者 BeinWong 所有, 如有侵权,请联系我们删除。
版权归原作者 BeinWong 所有, 如有侵权,请联系我们删除。