Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Трябва да се декларира скаларната променлива @ID за вмъкнат параметър

Проблемът все още е, че се опитвате да използвате един и същ "обхват" с две различни SQL команди. Дори и да са една и съща „променлива“ в C# в SQL, те имат различен обхват.

Ще трябва да изпълните двата израза в една команда и да добавите @ID параметър като Output параметър, за да вмъкнете и извадите самоличността:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server FOR XML Path прави повтарящи се възли

  2. Как да получа списък с колони в таблица или изглед?

  3. Как мога да конвертирам bigint (UNIX timestamp) в datetime в SQL Server?

  4. Синтаксична грешка близо до 'of' в условието за търсене в пълен текст 'control of'

  5. Как работи функцията QUOTENAME() в SQL Server (T-SQL)