主从表mysql外键_关于用C#数据库控件进行主从表增加记录的外键值的问题

首先谢谢大家,我来说说问题所在

1.现象:当主表和从表都没有一条记录时(数据库为空),主从表一起保存后得到从表的外键值为0,没有与主表的主键对应起来.

2.问题环境:

A)SQLserver2000数据库,VS.net2005, 主表标识字段(自增长)为主键M_ID,从表没有与主表建立物理关系,只是设立与主表关联的外键

字段D_MID.

B)C#里在form上有sqlconnection一个,dataadpter两个(一个主,一个从),dataset一个(两表建立了关系和外键约束,并设置了

cascade),datagridview两个(一个连接主bindingsourse,另个连接FKMtableDtablebindingsource).

C)保存代码:

sqlConnection1.Open();

SqlTransaction tran = sqlConnection1.BeginTransaction();

da1.InsertCommand.Transaction = tran;

da1.UpdateCommand.Transaction = tran;

da1.DeleteCommand.Transaction = tran;

da2.InsertCommand.Transaction = tran;

da2.UpdateCommand.Transaction = tran;

da2.DeleteCommand.Transaction = tran;

try

{

da1.Update(ds);

da2.Update(ds);

tran.Commit();

}

catch

{

tran.Rollback();

ds.Tables[1].Clear();

ds.Tables[0].Clear();

da1.Fill(ds);

da2.Fill(ds);

MessageBox.Show("保存失败");

}

finally

{

sqlConnection1.Close();

}

D)运行操作:先主表增加记录(只是更新了dataset),再从表增加记录(因为数据库为空,所以得到主表外键为0),按下保存,执

行C)代码。

3。结果:在数据库至少有一条记录时完全正确的保存了主从表,在数据库为空时,从表记录外键为0,保存失败。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论

打赏作者

李大姨

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值