要使用
cmd.Parameters["@p_value"].Direction=ParameterDirection.ReturnValue;
则要修改你的存储过程
CREATE procedure sp1 @leibie nchar(18),@p_value decimal output
as
declare @num intselect @num=count(*) from sjwjb
where 客户类型=@leibieselect @p_value=@num/90009
return @p_value ----------添加这个如果不修改存储过程
则
cmd.Parameters["@p_value"].Direction=ParameterDirection.ReturnValue;
改为
cmd.Parameters["@p_value"].Direction=ParameterDirection.Output;
cmd.Parameters["@p_value"].Direction=ParameterDirection.ReturnValue;
则要修改你的存储过程
CREATE procedure sp1 @leibie nchar(18),@p_value decimal output
as
declare @num intselect @num=count(*) from sjwjb
where 客户类型=@leibieselect @p_value=@num/90009
return @p_value ----------添加这个如果不修改存储过程
则
cmd.Parameters["@p_value"].Direction=ParameterDirection.ReturnValue;
改为
cmd.Parameters["@p_value"].Direction=ParameterDirection.Output;
解决方案 »
- 急100求SQlite下面我读取数据中文乱码
- 求助:c# 中使用 webBrowser控件 自动登陆的问题!
- 怎样为Interfop.SHDocVw.dll添加强名称?
- dataGridView与Datatable
- 急,在线等!各位大虾们帮帮我!
- 请问哪里有 visual studio .net 2003 下载
- 问一下datagrid控件的TemplateColumn下的控件问题
- 为什么提问的人多,结帖的人少呢?不满的人都进来骂几句。!!
- 在C#中,怎样将一个Bitmap对象转换成一个Icon对象,请高手指点一下!
- 求教:这段数据绑定代码到底有什么问题???搞了我两天了,头大啊!!!
- <#...> 是什么意思?在ASP中好像没有这东东...请教.
- 如何将一个double类型的值转成16进制?
还少了一点
如果修改了你的存储过程的
你的程序中对储存过程的参数应该有三个才行
@leibie,@p_value 是其中的两个 还要加一个@ret(随便起的名)作为返回值之用对应的程序修改如下:
cmd.Parameters.Add(new SqlParameter("@leibie",SqlDbType.NChar,18));
cmd.Parameters.Add(new SqlParameter("@p_value",SqlDbType.NChar,18));
cmd.Parameters.Add(new SqlParameter("@ret",SqlDbType.NChar,18));
cmd.Parameters["@leibie"].Value=str1;
cmd.Parameters["@p_value"].Direction=ParameterDirection.Output;
cmd.Parameters["@ret"].Direction=ParameterDirection.ReturnValue;
这时得到p用下面两种方式均可
string p=cmd.Parameters["@p_value"].Value.ToString();
or
string p=cmd.Parameters["@ret"].Value.ToString();
cmd.Parameters["@p_value"].Direction=ParameterDirection.Output做了修改(存储过程也做了相应的修改),可是运行时由MessageBox.Show(Convert.ToString(i))得到的对话框却显示“非数字”(在此次提问之前时,我在存储过程中也曾用过“return @p_value”也是得到这个结果),这是怎么回事
按照你的存储过程
CREATE procedure sp1 @leibie nchar(18),@p_value decimal output
.....@p_value你是做为decimal声明的
首先要把
cmd.Parameters.Add(new SqlParameter("@p_value",SqlDbType.NChar,18));
改为
cmd.Parameters.Add(new SqlParameter("@p_value",SqlDbType.Decimal));