sql >> データベース >  >> RDS >> Sqlserver

挿入パラメーターのスカラー変数 @ID を宣言する必要があります

    問題は、2 つの異なる SQL コマンドで同じ「スコープ」を使用しようとしていることです。 SQL の C# では同じ「変数」ですが、スコープが異なります。

    1 つのコマンドで両方のステートメントを実行し、@ID を追加する必要があります。 Output としてのパラメーター ID を挿入して取得するためのパラメーター:

    nonqueryCommand.CommandType = CommandType.Text;
    nonqueryCommand.CommandText = "INSERT tblLoginLogTable (UserName, LoggedInDate, LoggedInTime) VALUES (@UserName, @LoggedInDate, @LoggedInTime); " + 
                                  "SELECT @ID = SCOPE_IDENTITY()";
    nonqueryCommand.Parameters.AddWithValue("@UserName", txtUserName.Text);
    nonqueryCommand.Parameters.AddWithValue("@LoggedInDate", DateTime.Now);
    nonqueryCommand.Parameters.AddWithValue("@LoggedInTime", DateTime.Now);
    nonqueryCommand.Parameters.Add("@ID",SqlDbType.Int).Direction = ParameterDirection.Output;
    
    thisConnection.Open();
    nonqueryCommand.ExecuteNonQuery(); 
    
    int id = (int)nonqueryCommand.Parameters["@ID"];
    


    1. 非常に大きなデータを格納するテーブルを設計するにはどうすればよいですか?

    2. 忙しいデータの人々のための7つの無料のデータベース作図ツール

    3. Oracle:テーブルは常にドロップテーブルの後に存在します

    4. mysqlUPDATEはINSERTINTOよりも高速ですか?