Ela*_*ahe 3 .net c# sql sql-server identity
我在我的数据库中添加了一条带有identity值的记录。我想在插入后获取标识值。我不想通过存储过程来做到这一点。
这是我的代码:
SQLString = " INSERT INTO myTable ";
SQLString += " (Cal1, Cal2, Cal3, Cal4) ";
SQLString += " VALUES(N'{0}',N'{1}',N'{2}',N'{3}') ";
SQLString = string.Format(SQLString, Val1, Val2, Val3, Val4);
SQLString += " Declare @_IdentityCode INT SET @_IdentityCode = @@IDENTITY RETURN @_IdentityCode";
int result;
public int DoCommand2(string sql)
{
con = new SqlConnection();
cmd = new SqlCommand();
da = new SqlDataAdapter();
cmd.Connection = con;
da.SelectCommand = cmd;
string cs = GlobalConstants.SqlConnectionString;
con.ConnectionString = cs;
cmd.CommandText = sql;
int i = cmd.ExecuteNonQuery();
return i;
}
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
在此上下文中不能使用带有返回值的 RETURN 语句。
附加SELECT SCOPE_IDENTITY();到您的正常 INSERT 语句:
将最后一个连接替换为:
SQLString += "; SELECT SCOPE_IDENTITY();"
Run Code Online (Sandbox Code Playgroud)
然后检索ID:
int ID = Convert.ToInt32(command.ExecuteScalar());
Run Code Online (Sandbox Code Playgroud)