mono环境下sqlserver存储过程output的参数异常?

89655408 发布于 2016/05/03 15:31
阅读 234
收藏 0

使用c#开发程序访问SQLServer存储过程,输出的参数(output)存在问题:

ALTER PROCEDURE [dbo].[proc_login] 

    @UserAccount varchar(32),    --账户
    @LoginPwd varchar(32), --密码
    @ret int output,
    @stroutput nvarchar(200) output

此存储过程在执行完后 @ret赋int型的值程序都可以正确获得,

但是 @stroutput 不管赋什么值,最终程序里获得的值都是字符串的第一位,如“登录成功”---->“登”

System.Data.SqlClient.SqlParameter  prm1 = new System.Data.SqlClient.SqlParameter();
            prm1.ParameterName = "@stroutput";//参数名称  
            prm1.SqlDbType = SqlDbType.VarChar;//参数类型  
            prm1.Size = 200;//参数的大小  
            prm1.Direction = ParameterDirection.InputOutput;//参数的方向,输入还是输出  
            cmd.Parameters.Add(prm1);  

        通过多次测试发现:如果是输出参数类型为字符串类型的,不管是varchar 还是 nvarcahr 还是Char 打开数据库监控发现,参数长度最终都被改成了1。 所以最终程序里获得的都是第一个字符!

        请教各位大神,此问题怎么破解?

加载中
0
89655408
89655408

后来解决了,添加output参数的时候随便传入一个字符串就行了。

这是一个坑~~

返回顶部
顶部