主从表更新(master/detail)

cgq214 2003-05-17 01:00:46
举列说明:
俩张表入库表master和入库明细表detail,有外键相连,1对多关系

页面中datagrid_m绑 master,datagrid_d绑 detail,

如何实现将一次将2个表同时更新,就象在c/s中更新主从表一样的效果!

这个个问题在开发mis系统中遇到,大家提点解决方案!
(用dataset,???如何实现)具体点
...全文
81 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jshadow 2003-06-07
  • 打赏
  • 举报
回复
UP
cgq214 2003-05-17
  • 打赏
  • 举报
回复
楼上的
如果从表一次更新有多条记录,如何处理?
我是知道在dataset里好点,我想有更好的处理方法。


丛林蚂蚁 2003-05-17
  • 打赏
  • 举报
回复
不是很明白你说的,我这样理解不知道对不对,就是说你对主表进行更后,要求从表也随之更新,如果从表更新错误,那主表更新的也取消,也就是说,必须是两个表都更新了,才是让它真正的更新.
这样的情况是经常发生的.一个简单的例子,出入库,就要对两个表进行操作,一个是库存表,一个是出售库操作记录表.我们通常都是用事务来管理的.
方法如下:
//定义变量
protected SqlConnection MyConn;
protected SqlCommand MyCMD;
protected string m_Str_Counter;
protected SqlTransaction MyTransaction;
protected string Str_SQL;
//实现方法
this.m_Str_Counter = "联接数据库字符串";
this.MyConn = new SqlConnection(m_Str_Counter);
this.MyConn.Open();
this.MyTransaction = this.MyConn.BeginTransaction();
this.MyCMD = new SqlCommand("",this.MyConn,this.MyTransaction);
try
{
this.Str_SQL = "你的SQL语名一,即更新主表";
this.MyCMD.CommandText = this.Str_SQL;
this.MyCMD.ExecuteNonQuery();
this.Str_SQL = "你的SQL语名二,即更新从表";
this.MyCMD.CommandText = this.Str_SQL;
this.MyCMD.ExecuteNonQuery();
this.MyTransaction.Commit();
this.MyConn.Close();
}
catch(Exception e)
{
this.MyTransaction.Rollback();
this.MyConn.Close();
}
说明:
当try后的两条SQL全部执行成功(此时不是真正的更新数据库),则执行this.MyTransaction.Commit();这时才真正更新数据库;如果有任何一条执行错误,则执行catch下的语句。那个Rollback就是取消上面两条语句的执行,回复执行前的样子。
cds0596 2003-05-17
  • 打赏
  • 举报
回复
把代码放在pageload里,添加数据相当于刷新页面,好象可以
cmsoft 2003-05-17
  • 打赏
  • 举报
回复
你以为数据库就只是放数据的呀~~,自己好好学习一下SQL SERVER等数据库吧,不敢苟同
cmsoft 2003-05-17
  • 打赏
  • 举报
回复
ft
cgq214 2003-05-17
  • 打赏
  • 举报
回复
trigger在数据库中处理,
很多业务如果都在数据库处理
这样ado.net还有什么意义?
cmsoft 2003-05-17
  • 打赏
  • 举报
回复
you can use trigger

62,046

社区成员

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

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

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

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