3

私はこのコードを持っています:

string conStr = ConfigurationManager.ConnectionStrings["BackgammonGame"].ConnectionString;
            SqlConnection con = new SqlConnection(conStr);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;

            con.Open();
            cmd.CommandText = ("INSERT INTO Game (playerA, playerB) OUTPUT INSERTED.gameID VALUES (@playerA, @playerB)");

            cmd.Parameters.Add("@playerA", SqlDbType.NVarChar).Value = firstPlayer;
            cmd.Parameters.Add("@playerB", SqlDbType.NVarChar).Value = secondPlayer;

            cmd.ExecuteNonQuery();

            int id = (int)cmd.ExecuteScalar();
            con.Close();

このテーブルに挿入すると、 という auto_increment int 主キー列があり、 in 出力gameIDが必要であることを SQL ステートメントで宣言しました。gameID私の問題は、コードにこの行を書き込むと int id = (int)cmd.ExecuteScalar(); 、挿入されたパラメーターがテーブルに2回表示されます(同じ情報を持つ2行)が、削除すると問題ありません。

他のテーブルでこの ID を使用できるように、この行が必要です。

4

2 に答える 2