Синтаксическая ошибка (отсутствует оператор) в выражении запроса '@ID = @@ IDENTITY'
Я дал ценный совет отВот
Но, как говорит заголовок темы, я получаю ошибку в методе btnLogin, связанную с моим предыдущим вопросом, но на самом деле я думаю, что та же проблема? Я говорю это, потому что я не получаю ошибку от моего предыдущего вопроса. Спасибо заранее, если кто-нибудь может помочь мне здесь.
доступ 2003 VS 2010 c #
Это мой метод btnLogin
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO LoginLogTable (UserName, LoggedInDate, LoggedInTime) VALUES (@UserName, @LoggedInDate, @LoggedInTime)";
cmd.CommandText = "SELECT @ID = @@IDENTITY";
cmd.Parameters.AddWithValue("@UserName", txtUserName.Text);
cmd.Parameters.AddWithValue("@LoggedInDate", DateTime.Now.ToShortDateString());
cmd.Parameters.AddWithValue("@LoggedInTime", DateTime.Now.ToString("HH:mm"));
cmd.Connection = myCon;
myCon.Open();
cmd.ExecuteNonQuery();
myCon.Close();
Это мой метод btnLogOut.
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = " UPDATE [LoginLogTable] SET [LoggedOutDate] = ?, [LoggedOutTime] = ? WHERE ID = @ID";
cmd.Parameters.AddWithValue("@LoggedOutDate", DateTime.Now.ToShortDateString());
cmd.Parameters.AddWithValue("@LoggedOutTime", DateTime.Now.ToString("HH:mm"));
cmd.Connection = myCon;
myCon.Open();
cmd.ExecuteNonQuery();
Целью кода является запись даты и времени, когда пользователь входит в систему, а также даты и времени, когда пользователь выходит из системы.
Обновление 2 Я тоже попробовал это ...
cmd.CommandText = "INSERT INTO LoginLogTable (UserName, LoggedInDate, LoggedInTime) VALUES (@UserName, @LoggedInDate, @LoggedInTime)" + "SELECT @ID = @@IDENTITY";
Тогда я получаю ошибку ...
Отсутствует точка с запятой (;) в конце оператора SQL.
Обновление 3
cmd.CommandText = "INSERT INTO LoginLogTable (UserName, LoggedInDate, LoggedInTime) VALUES
(@UserName, @LoggedInDate, @LoggedInTime)"; "SELECT @ID = @@IDENTITY";
Я разместил; и я получаю ошибку ...
Только операторы присваивания, вызова, приращения, декремента и нового объекта могут использоваться в качестве оператора
Глядя на другие решения, предоставленные другими участниками
Обновление 4
Я думаю, что некоторые из советов здесь могут работать только для SQL Server. Я использую MS Access 2003.
Обновление 5
cmd.CommandText = "INSERT INTO LoginLogTable (UserName, LoggedInDate, LoggedInTime) VALUES
(@UserName, @LoggedInDate, @LoggedInTime); SELECT @ID = @@IDENTITY";
ошибка получения ...
Символы, найденные после завершения оператора SQL.