sql >> Databasteknik >  >> RDS >> Sqlserver

Måste deklarera den skalära variabeln @ID för insert parameter

Problemet är fortfarande att du försöker använda samma "scope" med två olika SQL-kommandon. Även om de trodde att de är samma "variabel" i C# i SQL har de olika omfattning.

Du måste köra båda satserna i ett kommando och lägga till @ID parameter som en Output parameter för att infoga och få ut identiteten:

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. Använda Jenkins med Kubernetes AWS, del 1

  2. Laddar klassen `com.mysql.jdbc.Driver'. Detta är utfasat. Den nya förarklassen är `com.mysql.cj.jdbc.Driver'

  3. Misslyckas med SSIS-uppgiften när masken för att välja filer som ska laddas upp till FTP-servern med WinSCP matchar inga filer

  4. MySQL Server på MAMP-Windows startar inte