C语言ODBC连接sql server2005 学生选课

建表:

1:学生选课是多对多的关系,应该建立三个表。学生一张表(学号作为主键),课程信息一张表(课程编号作为主键),选课一张表(学号,课程编号同时作为主键)

2:三张表利用外键联系起来,即选课这张表里的学生学号和学生表的学号相对应,选课里的课程编号和课程信息表里的课程编号对应。

3:采用级联删除,这样在删除学生表信息的时候就能同时删除选课表里相应的信息,课程也是一样。

4:同样也要采用级联更新,这样在更新学生信息的时候就能同时更新在选课表里的信息,课程也是一样。

5:建表的时候可以用sql语言在数据库里直接建表。

6:注意点,sql server可以同时支持级联更新和删除。


用SQL语言来建表

<span style="font-size:14px;">CREATE TABLE tb_stu
(
	Sno VARCHAR(20) PRIMARY KEY,
	Sname VARCHAR(20) UNIQUE,
	Ssex VARCHAR(5),
	Sage INT,
	Sdept VARCHAR(20)
)</span>
在建表的时候最好要用VARCHAR 。因为VARCHAR 可以根据你的输入来分配空间,所以在匹配的时候就不会出错


<span style="font-size:14px;">CREATE TABLE tb_cou
(
	CID VARCHAR(20) PRIMARY KEY,
	Cname VARCHAR(20) UNIQUE,
	Cmax SMALLINT
)</span>

<span style="font-size:14px;">CREATE TABLE tb_sc
(
	Sno VARCHAR(20),
	CID VARCHAR(20),
	Grade SMALLINT,
	PRIMARY KEY(Sno,CID),
	FOREIGN KEY(Sno) REFERENCES tb_stu(Sno) ON DELETE CASCADE,
	FOREIGN KEY(CID) REFERENCES tb_cou(CID) ON DELETE CASCADE
);</span>


建好之后的相互关系



数据源的创建

打开ODBC数据源->选择添加->sql server->选择一个名称(连接数据库时候要用到的)->服务器选择local,记住一定要写成(local)->使用用户输入ID->用户名改为sa,密码就是你自己设置连接数据库的密码->选择数据库,就是你要连的数据库


C语言具体操作

添加学生


                
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 C 语言中,连接 SQL Server 数据库可以使用 Microsoft 提供的 ODBC API 接口。下面是一个简单的连接 SQL Server 数据库的示例代码: ``` #include <stdio.h> #include <stdlib.h> #include <sql.h> #include <sqlext.h> int main() { SQLHENV env; // 环境句柄 SQLHDBC dbc; // 连接句柄 SQLRETURN ret; // 返回值 // 初始化环境句柄 ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env); if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { printf("Failed to allocate environment handle\n"); return 1; } // 设置环境属性 ret = SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { printf("Failed to set environment attribute\n"); SQLFreeHandle(SQL_HANDLE_ENV, env); return 1; } // 分配连接句柄 ret = SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc); if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { printf("Failed to allocate connection handle\n"); SQLFreeHandle(SQL_HANDLE_ENV, env); return 1; } // 连接数据库 SQLCHAR* conn_str = "Driver={SQL Server};Server=localhost;Database=mydb;Uid=myusername;Pwd=mypassword;"; ret = SQLDriverConnect(dbc, NULL, conn_str, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE); if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { printf("Failed to connect to database\n"); SQLFreeHandle(SQL_HANDLE_DBC, dbc); SQLFreeHandle(SQL_HANDLE_ENV, env); return 1; } // 连接成功 printf("Connected to database successfully\n"); // 断开连接 SQLDisconnect(dbc); // 释放连接句柄和环境句柄 SQLFreeHandle(SQL_HANDLE_DBC, dbc); SQLFreeHandle(SQL_HANDLE_ENV, env); return 0; } ``` 需要注意的是,连接字符串 `conn_str` 中需要填写正确的 SQL Server 服务器、数据库、用户名和密码等信息。另外,连接成功后可以使用 ODBC API 提供的函数执行 SQL 查询语句等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值