你好!我想请教一下:c#应用程序中:
比如:我定义了几张表
学生表(stu):
学号:stu_no char(13) 主键
姓名:stu_name varchar(20)
性别:stu_sex bit
班级号:class_no char(13)
专业号:major_no char(13)
班级表(class):
班号: class_no char(13)
班级名称:class_name varchar(20)
所属专业:major_no char(13)
专业表(major):
专业号:major_no char(13)
专业名称:major_name varchar(20)
问题有如下:
1、那张学生表里的内容是要呈现给管理员看的,不过在查看浏览的时候应该有:学号,姓名,性别,班级(而不是班号),专业(而不是专业号)。请问这怎么实现??
2、而且当我删除人下专业的时候,其相应的下属:班级 应该也被删除掉,请问这又怎么实现???(所要删除的东西不在一个表里面)
3、当我添加一个学生的时候,我们要添加的一个叫“班级号“的字段,添加的界面是:班级名称。但真正写入表里面的却是这个班级名称的编号。请问这又如何解决??希望能解决这些问题的高手们给点迷津吧!做为一个学生,我向所有求知的人的向你们说声谢谢了!!!
比如:我定义了几张表
学生表(stu):
学号:stu_no char(13) 主键
姓名:stu_name varchar(20)
性别:stu_sex bit
班级号:class_no char(13)
专业号:major_no char(13)
班级表(class):
班号: class_no char(13)
班级名称:class_name varchar(20)
所属专业:major_no char(13)
专业表(major):
专业号:major_no char(13)
专业名称:major_name varchar(20)
问题有如下:
1、那张学生表里的内容是要呈现给管理员看的,不过在查看浏览的时候应该有:学号,姓名,性别,班级(而不是班号),专业(而不是专业号)。请问这怎么实现??
2、而且当我删除人下专业的时候,其相应的下属:班级 应该也被删除掉,请问这又怎么实现???(所要删除的东西不在一个表里面)
3、当我添加一个学生的时候,我们要添加的一个叫“班级号“的字段,添加的界面是:班级名称。但真正写入表里面的却是这个班级名称的编号。请问这又如何解决??希望能解决这些问题的高手们给点迷津吧!做为一个学生,我向所有求知的人的向你们说声谢谢了!!!
视图中.
第二个问题,你要通过删除学生(主键)来删除与它相关的,班级中的对应字段,考虑采用
删除的触发器.即当删除学生时发生一组SQL命令.
第三个问题类似于第二个问题.
我也是初学,仅作参考。第一个问题,用个多表查询就可以了。
SELECT *
FROM stu INNER JOIN
class ON stu.class_no = class.class_no
INNER JOIN major ON
stu.major_no = major.major_no第二个问题和第三个问题类似,就是多做条件删除就可以了哦,就用存储过程吧。if exists (select name from sysobjects
where name = 'prDelete' and type = 'p')
drop procedure prDelete
goCREATE PROCEDURE prDelete
@major_no char(13) -- 专业号
ASSET NOCOUNT ONDeclare @intErrorCode int
Select @intErrorCode = @@ErrorIf @intErrorCode = 0
Begin TransactionIf @intErrorCode = 0
Begin
Delete FROM major WHERE major_no = @major_no
Select @intErrorCode = @@Error
EndIf @intErrorCode = 0
Begin
Delete FROM class WHERE major_no = @major_no
Select @intErrorCode = @@Error
EndIf @intErrorCode = 0 and @@trancount > 0
Commit Transaction
Else
Rollback TransactionReturn @intErrorCodeGoc# 执行SQL 存储过程,书里都有,看看就知道了哦!我也是初学,仅作参考。
from stu
join class as c on class_no=c.class_no
join major as m on major_no=major_no自个试一下看行不行啊.. 至于第二三个问题可以用触发器解决的..
select 学号,姓名,性别,班级名称,专业名称
from 学生表,班级表,专业表
where 学生表.班号=班级表.班号 and 学生表.专业号=专业表.专业号2.首先也是确保班级表和专业表有外键约束.可以用触发器也可以用存储过程也可以直接写代码.直接写代码的:--先删除班级
delete 班级表 where 专业号="你想删除的专业的编号" --如果你不想输入专业号而想通过输入专业名称来删除的话,可以用子查询先查出专业名称--删除专业
delete 专业表 where 专业号= --同上3.你的描述不清楚