【发布时间】:2017-01-11 23:09:43
【问题描述】:
我想插入两个表,同时获取最后插入的 id,然后将其添加到第二个表中。我已经尝试过使用 ExecuteNonScalar 但它没有用。这是我的代码:
string iquery = "insert into [User] (username, password, role) values (@username,@password,@role)";
SqlCommand cmd = new SqlCommand(iquery, conn);
cmd.Parameters.AddWithValue("@username", username);
cmd.Parameters.AddWithValue("@password", password);
cmd.Parameters.AddWithValue("@role", "Customer");
cmd.ExecuteNonQuery();
//get last insert User ID, insert into borrower
int id = Convert.ToInt32(cmd.ExecuteScalar());
string iquery2 = "insert into [borrower] (userid, name, phone, email, type) values (@id, @name, @phone, @email, @type)";
SqlCommand cmd1 = new SqlCommand(iquery2, conn);
cmd1.Parameters.AddWithValue("@id", id);
cmd1.Parameters.AddWithValue("@name", name);
cmd1.Parameters.AddWithValue("@phone", phone);
cmd1.Parameters.AddWithValue("@email", email);
cmd1.Parameters.AddWithValue("@type", type);
cmd1.ExecuteNonQuery();
当我编译并运行代码时,插入的 id 为 0。知道我做错了什么吗?
【问题讨论】: