请教:参数 0: String 类型的“@temp”,Size 属性具有无效大小值: 0
存储过程为alter proc myproc
@temp varchar(50) output
as
select @temp=cityname from city where cityid=1 and proid=1
在调用时
con=DB.CreateConn();
cmd=new SqlCommand("myproc",con);
cmd.CommandType=CommandType.StoredProcedure;
SqlParameter sp=new SqlParameter("@temp",SqlDbType.VarChar);
sp.Direction=ParameterDirection.Output;
sp.ToString();
cmd.Parameters.Add(sp);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
this.Label1.Text=cmd.Parameters["@temp"].Value.ToString();
提示参数 0: String 类型的“@temp”,Size 属性具有无效大小值: 0
是数据类型不对吗,请指教,谢谢!! --------------------编程问答-------------------- try..
SqlParameter sp=new SqlParameter("@temp",SqlDbType.VarChar,20);
--------------------编程问答-------------------- SqlParameter sp = new SqlParameter("@temp", SqlDbType.VarChar,50);
--------------------编程问答-------------------- 传入参数可以不指定长度,直接给值,但传出的必须指定长度
--------------------编程问答--------------------
不是把,我传出就没有设定值 --------------------编程问答-------------------- 我也有同样的问题,刚刚解决了
SqlParameter sp=new SqlParameter( "@temp ",SqlDbType.VarChar);
这句应该改为
SqlParameter sp=new SqlParameter( "@temp ",SqlDbType.VarChar,50);
初始化该字段时大小必须设置大小
不明白可以看这里
http://119116112.spaces.live.com/blog/cns!39E35383A54CED70!148.entry
或者
http://www.chinaaspx.com/Comm/Dotnetbbs/Showtopic.aspx?Forum_ID=6&Id=149392
--------------------编程问答-------------------- 3楼说的有道理 --------------------编程问答-------------------- sp.ToString(); 这是什么意思 --------------------编程问答-------------------- ding --------------------编程问答--------------------
你的cityname是英文吗?不是的话要用nVarChar --------------------编程问答-------------------- 输出参数必须指定长度
执行存储过程出现这个错误
param[1] = comm.Parameters.Add("@Name", SqlDbType.VarChar); //错误
param[1].Value = Name ;
param[1].Direction = ParameterDirection.Output;
output方式从存储过程传出参数必须使用三个参数版本的,Parameters.Add("@Name", SqlDbType.VarChar,50);
补充:.NET技术 , ASP.NET