C#学习教程:查询表达式'@ID=@@IDENTITY'中的语法错误(缺少运算符)正如主题标题所说,我在btnLogin方法中遇到错误,这与我之前的问题有关,但我认为实际上是同样的问题?我这样说是因为我没有从上一个问题中得到错误。如果有人可以帮助我,请提前致谢。Access2003VS2010c#这是我的btnLogin方法OleDbCommandcmd=newOleDbCommand();cmd.CommandType=CommandType.Text;cmd.CommandText="INSERTINTOLoginLogTable(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方法。OleDbCommandcmd=newOleDbCommand();cmd.CommandType=CommandType.Text;cmd.CommandText="UPDATE[LoginLogTable]SET[LoggedOutDate]=?,[LoggedOutTime]=?WHEREID=@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我也试过这个......然后我收到GotError...Missingsemicolon(;)attheendofSQLstatement。UPDATE3cmd.CommandText="INSERTINTOLoginLogTable(UserName,LoggedInDate,LoggedInTime)VALUES(@UserName,@LoggedInDate,@LoggedInTime)";“选择@ID=@@IDENTITY”;我放了一个;errorIget...Onlyassignment,call,increment,decrementandnewobjectexpressionscanbeusedasstatements查看其他成员提供的其他解决方案UPDATE4我认为这里的一些建议可能只适用于SQLServer。我正在使用MSAccess2003。UPDATE5cmd.CommandText="INSERTINTOLoginLogTable(UserName,LoggedInDate,LoggedInTime)VALUES(@UserName,@LoggedInDate,@LoggedInTime);选择@ID=@@IDENTITY";收到错误...在SQL语句结束后找到字符。看起来您的代码中可能有错误。您将cmd的文本设置为第一行,然后将其完全替换为第二行:cmd.CommandText="INSERTINTOLoginLogTable(UserName,LoggedInDate,LoggedInTime)VALUES(@UserName,@LoggedInDate,@LoggedInTime)";cmd.CommandText="SELECT@ID=@@IDENTITY";所以你实际上只是执行:cmd.CommandText="SELECT@ID=@@IDENTITY";在第一种登录方法中,通过设置两次覆盖命令文本:cmd.CommandText="INSERTINTOLoginLogTable(UserName,LoggedInDate,LoggedInTime)VALUES(@UserName,@LoggedInDate,@LoggedInTime)";cmd.CommandText="SELECT@ID=@@IDENTITY";在“更新2”中,您将在INSERT语句之后立即连接SELECT语句,从而产生以下SQL:INSERTINTOLoginLogTable(UserName,LoggedInDate,LoggedInTime)VALUES(@UserName,@LoggedInDate,@LoggedInTime)SELECT@ID=@@IDENTITY你必须设置';'在INSERT语句的末尾,在“SELECT”之前。顺便一提。使用SCOPE_IDENTITY()而不是@@IDENTITY,请参阅http://msdn.microsoft.com/en-us/library/ms190315.aspx和SQL:HowdoIgettheidofthevalueIjustinserted?此外,这里还有一个类似的问题,显示了执行命令的正确方法:HowtogetthelastinsertedID?如果您正在考虑获取用户ID,则必须将这两个语句合并为一个批处理。内容,如果对你有用,需要了解更多C#学习教程,希望你多多关注—cmd.CommandText="INSERTINTOLoginLogTable(UserName,LoggedInDate,LoggedInTime)VALUES(@UserName,@LoggedInDate,@LoggedInTime)选择@@IDENTITY";本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
