使用C#和MySQL插入两个表

时间:2011-03-12 17:55:40

标签: c# .net mysql

我目前正在用C#编写一个webapp,它要求我在注册表单上收集新的用户信息。需要将信息输入两个单独的表,一个表用于用户信息,例如姓名,电子邮件地址等。另一个用于公司信息,如公司名称,网站URL等。

我正在使用MySQL Connector for .NET,并且一直使用MySqlCommand编写参数化查询。

我需要做的是将用户信息插入到User表中,然后在Accounts表中创建一个记录,并通过ID将两者连接在一起。

因此用户表类似于:

UserID | Username | Password | EmailAddress | AccountID
  11        Dave       1234        Em@il          14

公司表类似于:

AccountID | CompanyName | WebsiteURL | UserID
   14         MyCo         my.com       11 

我考虑使用LAST_INSERTED_ID()MySQL函数,但我担心如果两个人同时注册,那么使用它可能会混合两个记录。

我很感谢有知识的人对此的任何想法。

谢谢,

戴夫

2 个答案:

答案 0 :(得分:1)

我认为您应该使用Transaction来包装这两个INSERT。这样就可以确保它们一起执行。

答案 1 :(得分:1)

根据MySQL documentation LAST_INSERTED_ID()返回基于每个连接生成的最后一个ID,因此同时注册的两个不同用户将获得不同的ID。

另外,正如ngduc所说,最好使用一个事务来确保插入两个记录。