我与ASP.net & C#的工作创造一个体育联盟球员转会申请。我目前正在注册页面上工作,我想一次性完成,即注册一个新团队&联系人。我的问题是Team_ID需要进入“Team_User”表,将两个表连接在一起。问题是我想不出任何两个表都是唯一的,我可以设置一个查询来查找“Team”表中的Team_ID。有任何想法吗?
编辑:Team_ID是在将新团队添加到表格时自动生成的。 我试过这个,我似乎无法得到它的工作。
// define connection string and SQL query as strings
string connectionString = ConfigurationManager.ConnectionStrings["Web_FussConnectionString"].ConnectionString;
string query = "INSERT INTO Team (League_ID, Team_Name, Address_1, Stadium) values (@League_ID, @Team_Name, @Address_1, @Stadium) & SET @Team_ID = SCOPE_IDENTITY()";
string query1 = "INSERT INTO Team_User (Team_ID, First_Name, Job_Title, Telephone_Number, Email, Password_1, Last_Name) values (@Team_ID, @First_Name, @Job_Title, @Telephone_Number, @Email, @Password_1, @Last_Name)";
// set up SqlConnection and SqlCommand in "using" blocks
using (SqlConnection con = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(query, con))
using (SqlCommand cmd1 = new SqlCommand(query1, con))
{
// define and fill parameters
cmd.Parameters.Add("@League_ID", SqlDbType.Int).Value = Session["League_ID"];
cmd.Parameters.Add("@Team_Name", SqlDbType.VarChar, 50).Value = TextBoxName.Text;
cmd.Parameters.Add("@Address_1", SqlDbType.VarChar, 50).Value = TextBoxAddress.Text;
cmd.Parameters.Add("@Stadium", SqlDbType.VarChar, 50).Value = TextBoxType.Text;
int @Team_Id = Convert.ToInt32(cmd.Parameters["@Team_ID"].Value);
cmd1.Parameters.Add("@First_Name", SqlDbType.VarChar, 50).Value = TextBoxContactName.Text;
cmd1.Parameters.Add("@Job_Title", SqlDbType.VarChar, 50).Value = TextBoxTitle.Text;
cmd1.Parameters.Add("@Telephone_Number", SqlDbType.Int).Value = TextBoxNumber.Text;
cmd1.Parameters.Add("@Email", SqlDbType.VarChar, 50).Value = TextBoxEmail.Text;
cmd1.Parameters.Add("@Password_1", SqlDbType.VarChar, 50).Value = TextBoxPassword.Text;
cmd1.Parameters.Add("@Last_Name", SqlDbType.VarChar, 50).Value = TextBoxContactLastName;
// open connection, execute Non Query, close connection
con.Open();
cmd.ExecuteNonQuery();
cmd1.ExecuteNonQuery();
con.Close();
}
FWIW这是一个正确的答案,但如果你需要多行:'INSERT INTO队...输出inserted.Id,... INTO TeamUser ...' –
你也可以使用'选择@new_team_id = scope_identity();' - 不需要'SET'和'SELECT' - 一个就足够了 –
请介意看看我的编辑:) – Haldamir