ASP.net数据库表关联操作

莫舍桥西 2011-06-01 05:56:35
数据库SQLserver2005,开发.NET3.0
部门(DerID(主键)……)
员工(EmpID(主键),……,DerID(外键))
物品(GoID,(主键)……,EmpID(外键))
表建立主外键关系。
问题1:修改部门,其部门下的员工也跟着修改。
问题2:删除物品,删除EmpID员工所有添加的物品。
不要触发器做的(触发器会)
希望大家能提供相应的asp.net C#代码实现和解决思路!THANKS!
...全文
127 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-06-01
  • 打赏
  • 举报
回复
事务可以解决

//执行事务处理
public void DoTran()
{  //建立连接并打开
 SqlConnection myConn=GetConn();
 myConn.Open();
 SqlCommand myComm=new SqlCommand();
 //SqlTransaction myTran=new SqlTransaction();
 //注意,SqlTransaction类无公开的构造函数
 SqlTransaction myTran;
 //创建一个事务
 myTran=myConn.BeginTransaction();
 try
 {
  //从此开始,基于该连接的数据操作都被认为是事务的一部分
  //下面绑定连接和事务对象
  myComm.Connection=myConn;
  myComm.Transaction=myTran; //定位到pubs数据库
  myComm.CommandText="USE pubs";
  myComm.ExecuteNonQuery();//操作1
  myComm.CommandText=""; //操作2
  myComm.ExecuteNonQuery();
   //提交事务
  myTran.Commit();
 }
 catch(Exception err)
 {
myTran.rollback();
  throw new ApplicationException("事务操作出错,系统信息:"+err.Message);
  }
 finally
 {
  myConn.Close();
  }
}
lihaibo5260 2011-06-01
  • 打赏
  • 举报
回复
分步来呗
莫舍桥西 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hu_qian 的回复:]
使用级联更新和删除!
就是在建立外键的时候加上规范。
更新规则:层叠(默认是无操作)
删除的也一样~
[/Quote]
一个物品可以有多个EmpID(多个员工录入同一种商品),删除这个员工,将其录入的商品也都删除
莫舍桥西 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hu_qian 的回复:]
使用级联更新和删除!
就是在建立外键的时候加上规范。
更新规则:层叠(默认是无操作)
删除的也一样~
[/Quote]
比如说一个公司的id修改了,以前员工的部门id都要改成修改后的(不管实际意义,要这种效果)
莫舍桥西 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hu_qian 的回复:]
这些操作可以直接在数据库里完成!
[/Quote]我想代码里实现这个流程,数据库完成可以用触发器,老师建议我不要用触发器
hu_qian 2011-06-01
  • 打赏
  • 举报
回复
那我就不懂你的意思了~
hu_qian 2011-06-01
  • 打赏
  • 举报
回复
这些操作可以直接在数据库里完成!
laowang134 2011-06-01
  • 打赏
  • 举报
回复
问题1:修改部门,其部门下的员工也跟着修改。
---
你要修改ID吗??修改ID没意义。。。


问题2:删除物品,删除EmpID员工所有添加的物品。
不要触发器做的(触发器会)
---
删除一件物品就要删除EmpID所对应的所有物品?
hu_qian 2011-06-01
  • 打赏
  • 举报
回复
使用级联更新和删除!
就是在建立外键的时候加上规范。
更新规则:层叠(默认是无操作)
删除的也一样~

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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