收藏文章 楼主

C语言怎么连SQL数据库?详细步骤展示

版块:编程开发   类型:普通   作者:小羊羔links   查看:999   回复:0   获赞:0   时间:2022-02-11 20:54:29

在C语言中,如果想连接SQL Server数据库,可以使用ODBC数据源方式实现。


使用ODBC连接数据库,简单来说,就是通过一个媒介,来连接数据库和程序代码。C语言中,使用ODBC连接SQL Server数据库可以分为以下两大步骤。


1.配置ODBC数据源

配置ODBC数据源的步骤如下:

(1)在Windows操作系统中,选择“开始”→“控制面板”,查看方式选择“小图标”,然后单击“管理工具”,将打开管理工具文件夹,如图1所示。

C语言怎么连SQL数据库?详细步骤展示

在管理工具的文件夹中,双击“数据源(ODBC)”图标,打开ODBC数据源管理器,如图2所示。


(2)在ODBC数据源管理器中,单击“添加”按钮,打开“创建新数据源”对话框,如图3所示。

C语言怎么连SQL数据库?详细步骤展示

(3)在“创建新数据源”对话框选择ODBC提供驱动程序的数据源,包括Access类驱动程序、dBase类驱动程序、Excel类驱动程序、FoxPro类驱动程序、Visual FoxPro类驱动程序、Paradox类驱动程序、Text类驱动程序、Oracle类驱动程序和SQL Server类驱动程序。本章主要介绍创建SQL Server的数据源,所以在驱动程序名称菜单中,选择“SQL Server Native Client 11.0”,单击“完成”按钮,如图4所示。


(4)随后打开“创建到SQL Server的新数据源”窗口。

✔ 在“名称”文本框内输入新的数据源名,例如csql。

✔ 在“描述”文本框内输入对数据源的描述,也可以为空。这里没有输入内容。

✔ 在“服务器”下拉列表框中选择需要连接的服务器,笔者选择“ZHOUJIAXING-PC\MRSQLSERVER”。

然后单击“下一步”按钮


(5)接下来选择SQL Server的登录验证方式,选择第二个单选框“使用用户输入登录ID和密码的SQL Server验证(S)”,然后输入登录ID和密码

✔ 在“登录ID”文本框中输入“sa”。

✔ 在“密码”文本框中输入密码,这个密码是安装SQL Server时设置的,如果为空,则不输入。


(6)单击“下一步”按钮,打开对话框。在此选中“更改默认的数据库为”复选框,同时在下拉列表框中选择需要的SQL Server数据库(例如选择mrkj),然后单击“下一步”按钮。


(7)在打开的对话框中使用默认选项,然后单击“完成”按钮,打开“ODBC Microsoft SQL Server 安装”对话框。单击“测试数据源”按钮,如果正确,则连接成功;如果不正确,系统会指出具体的错误,用户应该重新检查配置的内容是否正确


(8)单击“确定”按钮,新创建的数据源就会添加到如图9所示对话框中的数据源列表框中。此时在如图19.5对话框中单击“确定”按钮,一个新的SQL Server数据源就创建完成了。


至此,ODBC数据源csql就创建完成了,接下来就可以使用ODBC数据源进行数据库连接了。


2.使用ODBC数据源

通过C语言代码操作数据库,向mrkj数据库的class表中插入一条数据,代码如下。

01  #include <stdio.h>   

02  #include <string.h>   

03  #include <windows.h>   

04  #include <sql.h>   

05  #include <sqlext.h>   

06  #include <sqltypes.h>   

07  #include <odbcss.h>   

08   

09  SQLHENV henv = SQL_NULL_HENV;

10  SQLHDBC hdbc1 = SQL_NULL_HDBC;

11  SQLHSTMT hstmt1 = SQL_NULL_HSTMT;

12   

13  int main() {

14   RETCODE retcode;

15   UCHAR szDSN[SQL_MAX_DSN_LENGTH + 1] = "csql",

16    szUID[MAXNAME] = "sa",

17    szAuthStr[MAXNAME] = "111";

18   //SQL语句

19   UCHAR sql[200] = "insert into class values('C1707','一七级七班','刘梓平','52','数学系')";

20   //预编译SQL语句

21   UCHAR pre_sql[200] = "insert into class values(?,?,?,?,?)";

22   //连接数据源,设置环境句柄

23   retcode = SQLAllocHandle(SQL_HANDLE_ENVNULL, &henv);

24   retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,

25    (SQLPOINTER)SQL_OV_ODBC3,

26    SQL_IS_INTEGER);

27   //连接句柄

28   retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc1);

29   retcode = SQLConnect(hdbc1, szDSN, 4, szUID, 2, szAuthStr, 3);

30   //判断连接是否成功

31   if ((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO)) {

32    printf("连接失败!\n");

33    getchar();

34   }

35   else {

36    retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc1, &hstmt1);

37    //直接执行

38    SQLExecDirect(hstmt1,sql,200);

39    printf("操作成功!");

40    getchar();

41    //释放语句句柄

42    SQLCloseCursor(hstmt1);

43    SQLFreeHandle(SQL_HANDLE_STMT, hstmt1);

44   

45   }

46   /*

47   1.断开与数据源的连接.

48   2.释放连接句柄.

49   3.释放环境句柄(如果不再需要在这个环境中作更多连接)

50   */

51   SQLDisconnect(hdbc1);

52   SQLFreeHandle(SQL_HANDLE_DBC, hdbc1);

53   SQLFreeHandle(SQL_HANDLE_ENV, henv);

54   return(0);

55  }

打开SQL Server数据库查询class数据表,显示已经向class表插入了一条数据。

小羊羔锚文本外链网站长https://seo-links.cn 
回复列表
默认   热门   正序   倒序

回复:C语言怎么连SQL数据库?详细步骤展示

Powered by 小羊羔外链网 8.3.11

©2015 - 2024 小羊羔外链网

免费发软文外链 鄂ICP备16014738号-6

您的IP:3.143.0.157,2024-04-19 08:41:16,Processed in 0.05056 second(s).

支持原创软件,抵制盗版,共创美好明天!
头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息