VS与SQL Sever(C语言操作数据库)
作者这里使用的是步伐是:Visual Studio https://i-blog.csdnimg.cn/direct/b2a881c6401a46f39ab62229b5d39b22.png SQL Sever https://i-blog.csdnimg.cn/direct/8d03a56ce5a34df4a6de502cf24b3b70.png
(1 对VS的操作
1.起首我们打开Visual Studio Installer,并以管理员身份运行
https://i-blog.csdnimg.cn/direct/282fb8205d584fd69720543052ee7860.png
2.点击修改
https://i-blog.csdnimg.cn/direct/abc0fc3eb494474b8a1d583be468c7c3.png
3.先选择数据存储和处理,再在右方添加处理工具(如图设置)
最后在右下角选择修改(作者这里已经下载好了,所以右下角是关闭)
等待下载并安装完成
https://i-blog.csdnimg.cn/direct/81dd6937b91c48ada7904ba0d389c3e7.png
https://i-blog.csdnimg.cn/direct/d56a09f65dac4124ac9c44f352f75ea0.png
4.查抄工作(可选)
创建新的空项目并在第一行写入#include<sql.h>
https://i-blog.csdnimg.cn/direct/1abbe58fae094883965d3a092451296c.png
光标选择第一行,右键,选择转到文档
https://i-blog.csdnimg.cn/direct/d262dfeab12c456c8622808f3afa84e0.pnghttps://i-blog.csdnimg.cn/direct/b679e6702bad4181a6d7f3935a602493.png如上图则以上操作成功。
(2 对SQL Sever的操作
这里我们直接使用SQL Sever Management操作,不使用Poweshell操作(有图形化窗口管那么多干嘛,直接用!)
正常环境下SQL Sever的最高权限登录名是sa(这是安装时默认的),如果在安装时更改了,请使用更改的登录名,如果出现了不正常的环境,例如:密码忘了、更改的最高权限登录名忘了等等,作者的建议是,在排除没有比较重要的数据的环境下,卸了,重新安装。当然也可以使用Windows身份验证,这个作为附加等下阐明。
1.登录
由于是初学,大概刚开始做C语言项目实践要求这类的项目(一般都是大学学盘算机的朋侪,你们的痛,我懂。)所以一般数据库只在当地进行操作,所以数据库名称选择设备名称(不知道设备名称的朋侪请看下一张图)
身份验证使用SQL Sever 身份验证
登录名输入最高权限登录名,我的默认sa
密码,可选记着密码(比如我,由于是真没什么重要数据,属于是给狗看都摇头的田地)
最后毗连
https://i-blog.csdnimg.cn/direct/dc3639ace9684b3a9d0e4d8d79347f72.png
服务器名称:WIN+i打开设置
体系>体系信息>设备名称
https://i-blog.csdnimg.cn/direct/5558e2ee458e4bd7b96bfde52b5d08a3.png
https://i-blog.csdnimg.cn/direct/e886f1cc21424fa294044d6067d5f9e0.png
2.搜刮以管理员身份运行ODBC数据源
https://i-blog.csdnimg.cn/direct/824ff0080e59493bbf2bf28369a59721.png
3. 选择添加
https://i-blog.csdnimg.cn/direct/dedfbf01eac04e1d87d858f868a55a49.png
4.双击打开SQL Sever
https://i-blog.csdnimg.cn/direct/45f4326ee07e4aa8ab8ad0fcf4949360.png
5.名称随便,形貌可以不写,服务器千万别点向下的那个箭头,复制前面的设备名称
弄完后:
不要回车!不要回车!不要回车!直接点下一页
https://i-blog.csdnimg.cn/direct/85f063c05cc84c849a00c0f9eb3ec6d4.png
6.选择使用用户输入登录ID和密码的 SQL Sever 验证
方框打勾
登录ID输入你们的最高权限登录名(就是默认是sa的那个,这里的root只是我创建的第二个较高权限账户而已)
密码
https://i-blog.csdnimg.cn/direct/39594dcd41fe4e898d2615ddae085b98.png
7.直接下一页
https://i-blog.csdnimg.cn/direct/80d927e0444e44f5a08f1a78011881e3.png
8.划出来的看必要,我暂时不用,没有必要的话直接点完成
https://i-blog.csdnimg.cn/direct/413ce5a0e56d43b8b38e0a49c62805eb.png
9.点击测试数据源
https://i-blog.csdnimg.cn/direct/d272e6649e6b42b990f4dbb01702d427.png
10.测试成功是如许(我的之前测试过,所以这次很快,如果失败了,就多试几次,可能会出现如许的环境。如果一直失败,就必要搜一下解决方法了,作者没有失败过,所以不知道怎么解决)
https://i-blog.csdnimg.cn/direct/e47fdc721c6944b185ae35f5018beb53.png
11.点击确认
查抄是否多出来如许一行(1是作者输入的名称)
https://i-blog.csdnimg.cn/direct/a578193e7b8f47d5853ccc4f44bb5fb1.png
(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字符集:
项目>属性
https://i-blog.csdnimg.cn/direct/bc7f5acdabf24b5e8d5992bef08aea2a.png
配置属性>高级>字符集合
默认的是Unicode,将它修改成使用多字节字符集,不要忘记点应用
https://i-blog.csdnimg.cn/direct/c5423c3eae1c4eb9a4a451e040a69b5b.png
修改好后,代码如下,表明我放在解释中:
请一定!一定!一定!看完代码及解释,单纯将代码复制过去肯定报错,必要更改的地方我已在代码中解释阐明。
#include<stdio.h>
#include<windows.h>
#include<sql.h>
#include<sqlext.h>
#include<sqltypes.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:连接失败!\n");
}
ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
SQLCHAR sql1[] = "use "; //SQL语句选择数据库,我的数据库名字是
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:调用错误\n");
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO)
{
printf("学号\t\t姓名\t楼栋号\t寝室号\t是否回寝\n");
SQLCHAR str1, str2, str3, str4, str5, str6;
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\t%s\t%s\t%s\t%s\n", str1, str2, str3, str4, str5);
}
}
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);//释放连接
SQLFreeHandle(SQL_HANDLE_ENV, henv);//释放环境
}
int main()
{
query_all();
} 我们之前插入的就表现出来了!你也可以自己再学习一些SQL语句,直接将上面代码中的SQL语句做替换,也就可以实现其他功能。
SQL语句可以先搜搜其他博主的文章,后续我也会写一篇关于SQL语句。
https://i-blog.csdnimg.cn/direct/1c7203488367430eaabf6c7f2cf5d4e0.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]