sql >> Database teknologi >  >> RDS >> Sqlserver

Skal erklære den skalære variabel @ID for indsæt parameter

Problemet er stadig, at du prøver at bruge det samme "scope" med to forskellige SQL-kommandoer. Selv troede de er de samme "variable" i C# i SQL, har de forskelligt omfang.

Du skal udføre begge sætninger i én kommando og tilføje @ID parameter som en Output parameter for at indsætte og få identiteten ud:

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. SQL er ikke lig med null

  2. MySQL oprydningstabel fra duplikerede poster OG genlink FK i afhængig tabel

  3. Kan vi slette den fysiske fil fra serveren, når jeg sletter den tilsvarende post fra databasen?

  4. Betyder rækkefølgen af ​​tabeller, der henvises til i ON-klausulen i JOIN?