读书人

问一个关于executesql在c#中应用的有关

发布时间: 2012-01-05 22:36:54 作者: rapoo

问一个关于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为输出参数,用存储过程吧.

读书人网 >C#

热点推荐