c# - 获取最近添加的记录的主键并作为外键插入到另一个表中

标签 c# mysql asp.net

我使用 asp.net 作为前端,MySQL 作为后端。 我有两个表“注册”和“用户”。 我有一张注册表,因为我有注册详细信息和登录详细信息。 当用户单击注册时,注册详细信息将保存到“Registration”,登录详细信息将使用表 Registration 的外键 Reg_Id 保存到“User”。

这是我的代码:

DateTime dob = DateTime.Parse(txtDob.Text);
string formattedDate = dob.ToString("yyyy-MM-dd");

string qry = "insert into Registration(First_Name,Last_Name,Dob,Place,Zip,Phone_Number)values(@fname,@lname,@dob,@place,@zip,@phone);SELECT SCOPE_IDENTITY()";


MySqlCommand cmd = new MySqlCommand(qry, Connection.get());

cmd.Parameters.AddWithValue("@fname", txtFname.Text);

cmd.Parameters.AddWithValue("@lname", txtLname.Text);

cmd.Parameters.AddWithValue("@dob", formattedDate);

cmd.Parameters.AddWithValue("@place", txtPlace.Text);

cmd.Parameters.AddWithValue("@zip", txtZip.Text);

cmd.Parameters.AddWithValue("@phone", txtPhone.Text);

cmd.ExecuteNonQuery();

int modified = (int)cmd.ExecuteScalar(); 

Connection.close();

string qryToUser = "insert into User(User_Name,Password)values(@user,@password)";

MySqlCommand cmd1 = new MySqlCommand(qryToUser, Connection.get());

cmd.Parameters.AddWithValue("@user", txtUsername.Text);

cmd.Parameters.AddWithValue("@password", txtPasswordConfirm.Text);

cmd1.ExecuteNonQuery();

我无法使用 cmd.ExecuteScalar() 方法获取 REG_Id。 还有其他方法还是我做错了什么??? 请有人帮助我

最佳答案

您可以只使用 LastInsertedId 字段:

cmd.ExecuteNonQuery();
long modified = cmd.LastInsertedId;

关于c# - 获取最近添加的记录的主键并作为外键插入到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37225336/

相关文章:

c# - Windows azure REST API 列出容器问题

c# - 我如何确定一个类在 C# 中是否不可变?

python - 在 Windows 中将 MySQL 与 Python 集成

c# - <%# 的新手 - 奇怪的错误

javascript - 回发后将焦点设置到文本框中的文本末尾?

asp.net - 在 ASP.NET 中定义缓存 list 文件

c# - 编写一个极其简单的解析器

c# - 如何在不阻塞的情况下调用 NetworkStream.Read()?

php - Zend Framework 1. 获取评论

php - 无法在cakephp中保存多个表