Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Phải khai báo biến vô hướng @ID cho tham số chèn

Vấn đề vẫn là bạn đang cố gắng sử dụng cùng một "phạm vi" với hai lệnh SQL khác nhau. Ngay cả khi nghĩ rằng chúng là cùng một "biến" trong C # trong SQL thì chúng có phạm vi khác nhau.

Bạn sẽ cần thực hiện cả hai câu lệnh trong một lệnh và thêm @ID tham số dưới dạng Output để chèn và lấy ra danh tính:

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. Truy vấn trả về danh sách phân cấp các loại sự kiện kích hoạt trong SQL Server

  2. Làm thế nào để thêm một cột dòng trong trình thiết kế đầu tiên của mô hình Entity Framework 4.0?

  3. Truy vấn máy chủ được liên kết Postgresql rất chậm

  4. SQL - Chọn bản ghi mới nhất khi có bản sao

  5. SQL Server- Làm thế nào để ghi các biến và kết quả truy vấn vào tệp Văn bản?