VS与SQL Sever(C语言操作数据库)

VS与SQL Sever(C语言操作数据库) 作者这里使用的是程序是Visual StudioSQL Sever(1 对VS的操作1.首先我们打开Visual Studio Installer并以管理员身份运行2.点击修改3.先选择数据存储和处理再在右方添加处理工具如图设置最后在右下角选择修改作者这里已经下载好了所以右下角是关闭等待下载并安装完成4.检查工作可选创建新的空项目并在第一行写入**#includesql.h**光标选择第一行右键选择转到文档如上图则以上操作成功。(2 对SQL Sever的操作这里我们直接使用SQL Sever Management操作不使用Poweshell操作有图形化窗口管那么多干嘛直接用正常情况下SQL Sever的最高权限登录名是sa这是安装时默认的如果在安装时更改了请使用更改的登录名如果出现了不正常的情况例如密码忘了、更改的最高权限登录名忘了等等作者的建议是在排除没有比较重要的数据的情况下卸了重新安装。当然也可以使用Windows身份验证这个作为附加等下说明。1.登录因为是初学或者刚开始做C语言项目实践要求这类的项目一般都是大学学计算机的朋友你们的痛我懂。所以一般数据库只在本地进行操作所以数据库名称选择设备名称不知道设备名称的朋友请看下一张图身份验证使用SQL Sever 身份验证登录名输入最高权限登录名我的默认sa密码可选记住密码比如我因为是真没什么重要数据属于是给狗看都摇头的地步最后连接服务器名称WINi打开设置系统系统信息设备名称2.搜索以管理员身份运行ODBC数据源3. 选择添加4.双击打开SQL Sever5.名称随便描述可以不写服务器千万别点向下的那个箭头复制前面的设备名称弄完后不要回车不要回车不要回车直接点下一页6.选择使用用户输入登录ID和密码的 SQL Sever 验证方框打勾登录ID输入你们的最高权限登录名就是默认是sa的那个这里的root只是我创建的第二个较高权限账户而已密码7.直接下一页8.划出来的看需要我暂时不用没有需要的话直接点完成9.点击测试数据源10.测试成功是这样我的之前测试过所以这次很快如果失败了就多试几次可能会出现这样的情况。如果一直失败就需要搜一下解决方法了作者没有失败过所以不知道怎么解决11.点击确认检查是否多出来这样一行1是作者输入的名称(3 完成建立数据库和表的操作这里就不过多做介绍了网上一搜一大堆这里作者使用一下以前建立的数据库和表。create database 2024春 go ues 2024春 go create table test( 学号 varchar(20) not null primary key, 姓名 char(20) not null, 楼栋号 tinyint not null, 寝室号 smallint not null, 是否回寝 tinyint ) go然后我们随便插入一点数据进去insert into test values (2001,张三,10,112,0), (2003,李四,10,112,1), (2024,王五,10,112,1) go(4 C语言操作数据库上面那也不是数据库操作呀别急。先建立一份新的cpp文件我们需要修改VS字符集项目属性配置属性高级字符集合默认的是Unicode将它修改成使用多字节字符集不要忘记点应用修改好后代码如下解释我放在注释中请**一定一定一定**看完代码及注释单纯将代码复制过去肯定报错需要更改的地方我已在代码中注释说明。#includestdio.h #includewindows.h #includesql.h #includesqlext.h #includesqltypes.h void query_all() { SQLRETURN ret; SQLHENV henv; SQLHDBC hdbc; SQLHSTMT hstmt; ret SQLAllocHandle(SQL_HANDLE_ENV, NULL, henv); //申请环境 ret SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER); ret SQLAllocHandle(SQL_HANDLE_DBC, henv, hdbc);//申请连接数据库 ret SQLConnect(hdbc, (SQLCHAR*)数据, SQL_NTS, (SQLCHAR*)root, SQL_NTS, (SQLCHAR*)******, SQL_NTS); /*这里就是ODBC配置数据是我起的名字之前1那个不好听我换了个名字 root就是配置ODBC时所用的登录名******是密码请根据自己的情况*/ if (!(ret SQL_SUCCESS || ret SQL_SUCCESS_WITH_INFO)) { printf(error:连接失败! ); } ret SQLAllocHandle(SQL_HANDLE_STMT, hdbc, hstmt); SQLCHAR sql1[] use [2024春]; //SQL语句选择数据库我的数据库名字是[2024春] SQLCHAR sql2[] select * from test; //SQL语句执行最简单的查询test是表名 ret SQLExecDirect(hstmt, sql1, SQL_NTS); ret SQLExecDirect(hstmt, sql2, SQL_NTS); /*C语言操作数据库其实就是用C语言的函数在其中嵌套SQL语句*/ if (!(ret SQL_SUCCESS || ret SQL_SUCCESS_WITH_INFO)) printf(error:调用错误 ); if (ret SQL_SUCCESS || ret SQL_SUCCESS_WITH_INFO) { printf(学号 姓名 楼栋号 寝室号 是否回寝 ); SQLCHAR str1[50], str2[50], str3[50], str4[50], str5[50], str6[50]; SQLLEN len_str1, len_str2, len_str3, len_str4, len_str5, len_str6; while (SQLFetch(hstmt) ! SQL_NO_DATA) { SQLGetData(hstmt, 1, SQL_C_CHAR, str1, 50, len_str1); //获取第一列数据 SQLGetData(hstmt, 2, SQL_C_CHAR, str2, 50, len_str2); SQLGetData(hstmt, 3, SQL_C_CHAR, str3, 50, len_str3); SQLGetData(hstmt, 4, SQL_C_CHAR, str4, 50, len_str4); SQLGetData(hstmt, 5, SQL_C_CHAR, str5, 50, len_str5); /*这里总共你建立表用了几列你就用几次比如我的表有(学号姓名楼栋号寝室号是否回寝) 总共5列所以用了5次*/ printf(%s %s %s %s %s , str1, str2, str3, str4, str5); } } SQLFreeHandle(SQL_HANDLE_DBC, hdbc);//释放连接 SQLFreeHandle(SQL_HANDLE_ENV, henv);//释放环境 } int main() { query_all(); }我们之前插入的就显示出来了你也可以自己再学习一些SQL语句直接将上面代码中的SQL语句做替换也就可以实现其他功能。SQL语句可以先搜搜其他博主的文章后续我也会写一篇关于SQL语句。