过程或函数abc需要参数id',这是未提供的。 [英] Procedure or function abc expects parameter id', which was not supplied.

查看:94
本文介绍了过程或函数abc需要参数id',这是未提供的。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码中的


i有两个网格视图

gridview1和gridview2

我正在使用itextsharpe进行日历。

当我第一个gridview1行的selcetindex然后我得到第二个gridview2中的数据。

现在在第二个gridview2我把两个日期之间的显示数据的代码。

但显示错误,我没有传递gl_acid的值...

实际上我使用viewstate将用户的id从第一个gridview1传递到第二个gridview2。 />
我也向你发送我的代码和存储过程。

请给我最佳解决方案以摆脱这个错误。



我尝试过:



这是按钮显示两个日期之间数据的代码。



hi in my code,
i took two gridviews
gridview1 and gridview2
and i am using itextsharpe for calendar.
when i selcetindex of first gridview1 row then i get data in second gridview2.
now at second gridview2 i put code for show data between two dates.
but it is showing error that i had not passed values of gl_acid...
actualy i used viewstate for passing id of user from first gridview1 to second gridview2.
iam sending you my code and stored procedures also.
please give me optimal solution to get rid off this error.

What I have tried:

this is code upon button to show data between two dates.

protected void getBydate_Click(object sender, EventArgs e)
   {
       getdateValues();
   }
   public void getdateValues()
   {
       if (con.State == ConnectionState.Closed)
           con.Open();
       cmd = new SqlCommand("sp_dateBetween", con);
       cmd.Parameters.AddWithValue("@userid", Convert.ToInt32(Session["user"]));
       cmd.Parameters.AddWithValue("@gl_acid", Convert.ToInt32(ViewState["id"]));
       cmd.Parameters.AddWithValue("@dateFrom", dateFromText.Text);
       cmd.Parameters.AddWithValue("@dateTo", dateToText.Text);
       sda = new SqlDataAdapter(cmd);
       ds = new DataSet();
       sda.Fill(ds);
       GridView2.DataSource = ds;
       GridView2.DataBind();
       cmd.ExecuteNonQuery();
       con.Close();
   }







这里有存储过程






here is stored procedure for this

ALTER procedure [dbo].[sp_dateBetween]
(
  @gl_acid int,
  @userid int,
  @dateFrom datetime,
  @dateTo datetime
  )
  as 
  begin

SELECT 	ROW_NUMBER() OVER (Order by gLedeger.PK_id) as sno,gLedeger.gl_date as date,gLedeger.gl_narration  as Narration ,
	case when gLedeger.gl_drcr > 0 then abs(gLedeger.gl_drcr) else 0.00 end as debit,
	case when gLedeger.GL_DRCR	 < 0 then abs(gLedeger.gl_drcr) else 0.00 end as credit,
SUM(gLedeger.gl_drcr) OVER(ORDER BY gledeger.pk_ID ROWS UNBOUNDED PRECEDING) AS    Balance  
	FROM gLedeger   LEFT JOIN master ON 
    gLedeger.gl_acid = master.PK_ID left join registration r on master.userId= @userid
    WHERE gLedeger.gl_acid = @gl_acid
	and gl_date between Convert(Datetime, @dateFrom ,103) and Convert(Datetime,@dateTo,103)
	ORDER BY gLedeger.gl_date
end

推荐答案

您需要设置命令类型并告诉它它是您正在调用的存储过程。 SqlCommand.CommandType属性(System.Data。 SqlClient) [ ^ ]
You need to set the command type and tell it that it's a stored procedure you are calling. SqlCommand.CommandType Property (System.Data.SqlClient)[^]


这篇关于过程或函数abc需要参数id',这是未提供的。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆