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"];