SQLServer和C#:获取最后插入的idpublicstaticvoidCreateSocialGroup(stringFBUID){stringquery="INSERTINTOSocialGroup(created_by_fbuid)VALUES(@FBUID);选择@@IDENTITY作为LastID";使用(SqlConnectionconnection=newSqlConnection(ConnectionString)){SqlCommand命令=newSqlCommand(query,connection);命令.Parameters.AddWithValue("@FBUID",FBUID);连接.Open();命令.ExecuteNonQuery();这是正确的方法吗?如何将LastID放入变量中?谢谢OUTPUT子句?stringquery="INSERTINTOSocialGroup(created_by_fbuid)OUTPUTINSERTED.IDCol--userealcolumnhereVALUES(@FBUID)";...intlastId=(int)command.ExecuteScalar();您可以使用ExecuteScalar从Sqlcommand中获取最后一个值。scope_identity()函数比@@identity更安全。如果您的服务器支持OUTPUT子句,您可以尝试使用此OUTPUT子句:使用(SqlConnectionconnection=newSqlConnection(ConnectionString)){SqlCommand命令=newSqlCommand(query,connection);命令.Parameters.AddWithValue("@FBUID",FBUID);connection.Open();var_id=command.ExecuteScalar();}}就个人而言,我会重写您的代码以使用参数。您可以使用InputOutput参数或Output参数。但是,在SQL中使用返回值也可以。可以在MSDN上找到关于此的完整示例。我还会使用Scope_Identity()而不是@@Identity这将确保您将显示与当前事务关联的ID。可以在此处找到有关Scope_Identity的更多信息。您可以尝试ExecuteScalar获取LastID值。我建议使用存储过程来执行此操作。您可以给它一个OUTPUT参数,您可以使用该参数将id值返回给您的应用程序。仅将存储过程用于查询,并使用SCOPE_IDENTITY获取最大值。以上就是C#学习教程:SQLServer与C#:Getthelastinsertedid分享全部内容。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注—SqlCommandcommand=newSqlCommand("selectmax(id)fromSocialGroup",connection);intlastId=(int)command.ExecuteScalar();本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
