在sql server的查询分析器中可以这样定,以得到插入数据的主键DECLARE @sql NVARCHAR(4000)
DECLARE @Result INT
SET @sql = 'INSERT INTO Spec_Friends(f_Title, Spec_ID) VALUES (''abc'',0) SET @Return = @@Identity'
exec sp_executesql @sql, '@Return INT OUTPUT',@Result OUTPUT
PRINT @Result但在c#怎么得到这个结果呢?我试过多种方法,但还是不行,贴个代码 SqlParameter[] sqlParams = new SqlParameter[3];
sqlParams[0] = new SqlParameter("@statement", SqlDbType.NVarChar);
sqlParams[0].Value = sql; sqlParams[1] = new SqlParameter("@parameters", SqlDbType.NVarChar, 1000);
sqlParams[1].Value = "@Return INT OUTPUT"; sqlParams[2] = new SqlParameter("@Return", returnType);
sqlParams[2].Direction = ParameterDirection.Output; new SQLOperator(this._SqlConn).ExecuteProcedure("sp_executesql", ref sqlParams); //执行存储过程并返回参数
return sqlParams[2].Value;
DECLARE @Result INT
SET @sql = 'INSERT INTO Spec_Friends(f_Title, Spec_ID) VALUES (''abc'',0) SET @Return = @@Identity'
exec sp_executesql @sql, '@Return INT OUTPUT',@Result OUTPUT
PRINT @Result但在c#怎么得到这个结果呢?我试过多种方法,但还是不行,贴个代码 SqlParameter[] sqlParams = new SqlParameter[3];
sqlParams[0] = new SqlParameter("@statement", SqlDbType.NVarChar);
sqlParams[0].Value = sql; sqlParams[1] = new SqlParameter("@parameters", SqlDbType.NVarChar, 1000);
sqlParams[1].Value = "@Return INT OUTPUT"; sqlParams[2] = new SqlParameter("@Return", returnType);
sqlParams[2].Direction = ParameterDirection.Output; new SQLOperator(this._SqlConn).ExecuteProcedure("sp_executesql", ref sqlParams); //执行存储过程并返回参数
return sqlParams[2].Value;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货