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,保存失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值