多表的增删改查

Jermy120 2012-10-19 07:49:20
我有两个表
院系表department:Dpt_Id(院系代号 主键), Dpt_Name(院系名称)
和教师表teacher :TelId(教师ID 主键),TeaName(教师姓名), Dpt_Id(院系代号 外键), techer_typ(教师职位类型, 有系主任, 书记, 科长)

我把这两个表组合新建了一个视图v_department :院系信息视图 并把这个视图的数据绑定显示在页面上:



我想问下:
(1)待会我点击这个”删除院系“事件, 我只是把院系表里的这个院系删掉呢? 还是要同时把教师表里的与这个院系对应的教师信息(对应被删院系的外键ID, 在这个院系的职务)也删掉啊?
(2)我添加, 删除, 修改是 是添加, 删除, 修改,这个视图 还是基本表啊?
...全文
280 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cainiaoecho1234 2015-01-04
  • 打赏
  • 举报
回复
引用 5 楼 yifan_huang 的回复:
多表删除还是用事务吧,要养成好习惯
怎么用事务呢?
Jermy120 2012-10-23
  • 打赏
  • 举报
回复
现在 我这两个表 院系表和教师表创建了一个视图v_department 并把它绑定到Gridview上在页面显示出来了, 现在我想实现 “新增院系”和“更新院系” 这两个功能。
(1)新增院系:
假入在一个新增页面上,我输入了新增的院系名,并给这个新增的院系 新增了它对应的系主任,书记,科长以及他们之间的电话。现在我想问下: 由于我同时在department表和teacher表 新增院系和这个院系对应的教师角色, 我就想知道,现在怎样同时在这两个表里插入这个新增的数据,我知道用两条sql语句能够做到,但是我想就用一条sql语句在C#代码是就能够实现。
(2)更新院系:
同上, 我也就想只用一条sql语句就能实现,不要多条sql语句
Jermy120 2012-10-23
  • 打赏
  • 举报
回复
各为大侠,我想再问几个问题啊
yifan_huang 2012-10-20
  • 打赏
  • 举报
回复
多表删除还是用事务吧,要养成好习惯
dalmeeme 2012-10-20
  • 打赏
  • 举报
回复
如果是sql server数据库,可以把两个delete写在一起,中间用英文的分号隔开:
delete from table1 where 条件;delete from table2 where 条件

如果所用数据库不支持上面的批处理方式,就这么写:
SqlCommand cmd=new SqlCommand("delete from table1 where 条件",cn);
cmd.ExecuteNonQuery();
cmd.CommandText="delete from table2 where 条件";
cmd.ExecuteNonQuery();
Jermy120 2012-10-20
  • 打赏
  • 举报
回复
那我这个SQL语句怎么写啊 不用触发器 就用两个delete 怎么写啊?
kensouterry1 2012-10-19
  • 打赏
  • 举报
回复
这两张表肯定是有关联关系的,因为department:Dpt_Id和teacher.Dpt_Id就应该关联起来,引用完整性,关于数据完整性的知识可以看看SQL联机丛书,所以当你删除一个院系的时候,你应该删除该院系对应的所有老师记录。

如果你视图中的列和基本表的列完全一致,那么可以直接修改视图达到修改表数据的目的,否则只能通过修改基本表中的数据来实现。
dalmeeme 2012-10-19
  • 打赏
  • 举报
回复
(1)如果院系表同教师表建立了主外键关系(delete触发器),程序中只需删除院系表中的对应记录,教师表中该院系的相关记录数据库会自动删除。否则你需要把两个表中的相关记录都删除才行。
(2)应该是基本表。

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧