我使用 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/