首页 新闻 搜索 专区 学院

c#中取不到存储过程参数的小数部分

0
悬赏园豆:20 [已解决问题] 解决于 2008-12-12 22:08

我在c# 中无法得到完整的存储过程参数值,不知道是什么原因。

先把我的c# 代码贴出来

Code

 

以下是我的SQL PROCEDURE

 

Code

 

我在SQL里面传入参数2,26,'DP',能够打印出@groupActualScore=18.67

但是c# 中得到的却是18,小数变没了,调试很久解决不了。谁知道原因帮忙一下。

我会感激涕零!

Apple Yang的主页 Apple Yang | 初学一级 | 园豆:144
提问于:2008-12-11 14:07
< >
分享
最佳答案
0

存储过程的返回值只能是int类型,所以你paras[3].Direction = ParameterDirection.ReturnValue;
就有问题了,如果要使用float型,请在存储过程中使用out关键字修饰的参数,同样paras[3].Direction = ParameterDirection.ReturnValue;也要改成Out了

GUO Xingwang | 老鸟四级 |园豆:3885 | 2008-12-11 14:25
其他回答(3)
0
new SqlParameter("@groupActualScore",SqlDbType.Float)
改成
new SqlParameter("@RETURN_VALUE",SqlDbType.Float)
试试
参见
http://blogs.msdn.com/smartclientdata/archive/2006/08/09/693113.aspx
eaglet | 园豆:17119 (专家六级) | 2008-12-11 14:26
0

输出语句是没问题的,那就应该出在值的传递过程...

有所为,有所不为 | 园豆:1200 (小虾三级) | 2008-12-11 14:43
0

正如一楼所说的“存储过程RETURN的返回值只能是int类型”

如果你想获取存储过程的返回还有另外一种方法就是把参数设置成output

//Create PROCEDURE MYSQL
//    @a int,
//    @b int,
//    @c int output
//AS
//    Set @c = @a + @b
//GO

SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
MyCommand.CommandType = CommandType.StoredProcedure;

MyCommand.Parameters["@c"].Direction = ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@c"].Value.ToString());

Jackey_Chen | 园豆:255 (菜鸟二级) | 2008-12-12 12:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册