@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)