C# 使用事务将记录插入到c中相互依赖的多个表中

C# 使用事务将记录插入到c中相互依赖的多个表中,c#,C#,我是C的新手 我有两张桌子: 员工表E_id主键、姓名、姓氏、地址、DOB、电子邮件 BankDetail表格Id主键、银行名称、账号、E\U Id FK 两个PK都是自动递增的 现在的问题是,我需要同时在两个表中插入数据。但是,如果员工Id E-Id在递增过程中生成,那么我将如何在同一操作中将该值输入到BankDetails E_Id中。我还需要在这里使用事务来保证数据库的完整性 有人能简单地解释一下吗?提前感谢。我认为实现这一点的最佳方法是将您的操作包装在存储过程中。您可以使用获取先前添加的

我是C的新手

我有两张桌子: 员工表E_id主键、姓名、姓氏、地址、DOB、电子邮件 BankDetail表格Id主键、银行名称、账号、E\U Id FK

两个PK都是自动递增的

现在的问题是,我需要同时在两个表中插入数据。但是,如果员工Id E-Id在递增过程中生成,那么我将如何在同一操作中将该值输入到BankDetails E_Id中。我还需要在这里使用事务来保证数据库的完整性


有人能简单地解释一下吗?提前感谢。

我认为实现这一点的最佳方法是将您的操作包装在存储过程中。您可以使用获取先前添加的记录的ID,并确保执行两个insert查询或根本不执行任何查询

BEGIN TRANSACTION;

BEGIN TRY

   INSERT INTO Employee (first_name, Last_name, Address, DOB, Email)
   VALUES (@fname, @lame, ... etc)

   -- Get the last identity value inserted into an identity column in the same scope
   SET @E_Id = SCOPE_IDENTITY();

   INSERT INTO BankDetail(bank_name, Acc_no, E_id)
   VALUES (@bname, @ano, @E_id)

END TRY
BEGIN CATCH
   IF @@TRANCOUNT > 0
      ROLLBACK TRANSACTION;            
END CATCH;

IF @@TRANCOUNT > 0
    COMMIT TRANSACTION; 

看看交易情况亲爱的Giorgos非常感谢伙计。让我来实现这一点,然后如果您愿意回答更多的问题,我可能会回复您。@Cloud好的,没问题。请注意,上述代码适用于Sql Server。最好将这样的操作放在db服务器中,而不是试图用C来完成它们