player1 対でゲームをしたいです。player2 であり、最初にそれらを DB に登録する必要があります。各ユーザーの詳細用のパネルと 1 つの送信ボタンを備えた 1 つのフォームがあるため、2 人のユーザーが詳細を入力すると、同じフォームで送信されます。DBにUsersテーブルが1つあるので、登録済みのすべてのユーザーがそこにいるはずです。しかし、DBテーブルに追加すると、@usernameが既に存在するという例外が発生します(テーブル内のすべてのパラメーターについても同じです)。
1つのフォームに2人のユーザーを1つのテーブルに登録することはできますか?
これは送信ボタンのコードです。それは1人のユーザーのために働きます..
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();
}
}