问一个关于executesql在c#中应用的问题
在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;
------解决方案--------------------没有指定p2为输出参数,用存储过程吧.