我想和 player1 Vs 做一个游戏。player2 并且需要先将它们注册到 DB。我有一个带有每个用户详细信息面板的表单和一个提交按钮,因此当两个用户填写他们的详细信息时,他们会在同一个表单中提交它们。我在数据库中有一个用户表,所以所有注册用户都应该在那里。但是当我将它添加到数据库表时,我得到@username 已经存在的异常(并且表中的所有参数都相同)。
是否可以将两个用户以一种形式注册到一张表?
这是提交按钮的代码。它适用于一个用户..
private void submitBtn_Click(object sender, EventArgs e)
{
if (registerValidation())
{
string conStr = ConfigurationManager.ConnectionStrings["BackgammonGame"].ConnectionString;
SqlConnection con = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
con.Open();
cmd.CommandText = ("INSERT INTO Users (userName, firstName, lastName, address, addNum, city, phone, email) VALUES (@userName, @firstName, @lastName, @address, @addNum, @city, @phone, @email)");
cmd.Parameters.Add("@userName", SqlDbType.NVarChar).Value = userNmTxt.Text;
cmd.Parameters.Add("@firstName", SqlDbType.NVarChar).Value = firstNmTxt.Text;
cmd.Parameters.Add("@lastName", SqlDbType.NVarChar).Value = lastNmTxt.Text;
cmd.Parameters.Add("@address", SqlDbType.NVarChar).Value = streetTxt.Text;
cmd.Parameters.Add("@addNum", SqlDbType.Int).Value = (string.IsNullOrWhiteSpace(stNumTxt.Text)) ? 0 : Int32.Parse(stNumTxt.Text);
cmd.Parameters.Add("@city", SqlDbType.NVarChar).Value = cityTxt.Text;
cmd.Parameters.Add("@phone", SqlDbType.Int).Value = (string.IsNullOrWhiteSpace(phoneNumTxt.Text)) ? 0 : Int32.Parse(phoneNumTxt.Text);
cmd.Parameters.Add("@email", SqlDbType.NVarChar).Value = mailTxt.Text;
cmd.ExecuteNonQuery();
MessageBox.Show("User successfully created!");
con.Close();
Close();
Form1.ActiveForm.Close();
}
}