首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

@ParentID 不是过程 insertdepart 的参数。该怎么解决

2012-03-05 
@ParentID 不是过程 insertdepart 的参数。我在调用用存储过程时报@ParentID不是过程insertdepart的参数。

@ParentID 不是过程 insertdepart 的参数。
我在调用用存储过程时报@ParentID   不是过程   insertdepart   的参数。;
存储过程:
create   proc   insertdepart  
                        @Depproot   int,  
                        @DeppName   nvarchar(20),
                        @deppdesc   nvarchar(20)
as  
          declare   @a   integer

          select   @a=count(*)     from   new_department   where         Depproot   =@Depproot   and   DeppName=@DeppName

          if   @a   > 0
          Begin

                return   0          

          End
          Else
          Begin        

                insert   into   new_department(Depproot,DeppName,Deppdesc)   Values(@Depproot,@DeppName,@DeppDesc)
       
                return   1          

          end


调用代码:

                SqlConnection   con   =   CreateCon();
                SqlCommand   cmd   =   new   SqlCommand();
                cmd.CommandText   =   "insertdepart ";
                cmd.CommandType   =   CommandType.StoredProcedure;
                cmd.Connection   =   con;
                SqlParameter[]   paras   ={
                                                                new   SqlParameter( "@ParentID ",SqlDbType.Int),
                                                                new   SqlParameter( "@Deparname ",SqlDbType.NVarChar,30),
                                                                new   SqlParameter( "@DartDesc ",SqlDbType.NVarChar,20),
                                                                new   SqlParameter( "@RetValue ",SqlDbType.Int)
                                                            };


                paras[0].Value   =   ParentId;
                paras[1].Value   =   Deparname;
                paras[2].Value   =   DartDesc;
                paras[3].Direction   =   ParameterDirection.ReturnValue;
                foreach   (SqlParameter   para   in   paras)
                {
                        cmd.Parameters.Add(para);
                }
                con.Open();
                cmd.ExecuteNonQuery();
                int   ReValue   =   Convert.ToInt32(cmd.Parameters[ "@RetValue "].Value.ToString(),   10);
                con.Close();
                return   ReValue;
        }

不知道哪有错误,请大家指正。

[解决办法]
你存储过程的参数是
@Depproot int,
@DeppName nvarchar(20),
@deppdesc nvarchar(20)
你却传了4个,还名字不相同
[解决办法]
报的错已经说得很清楚了,你调用时传进如下四个参数:
SqlParameter[] paras ={
new SqlParameter( "@ParentID ",SqlDbType.Int),
new SqlParameter( "@Deparname ",SqlDbType.NVarChar,30),
new SqlParameter( "@DartDesc ",SqlDbType.NVarChar,20),
new SqlParameter( "@RetValue ",SqlDbType.Int)

你的存储过程却是如下三个参数,个数不同,名字也不同,当然出错。
create proc insertdepart
@Depproot int,
@DeppName nvarchar(20),
@deppdesc nvarchar(20)

热点排行