new SqlParameter( "@title ", SqlDbType.Int,4),
new SqlParameter( "@content ", SqlDbType.VarChar,30),
这里的4,30,写上和没有写有什么区别吗?
4和30一般对应的数据库的大小,整型大多是4个字节,不写问题也不大
这个参数指的是参数长度,指定size则当执行cmd命令时,只传递不超过指定size的数据
比如存储过程中定义参数长度为100,commandparameter指定size为5,则执行存储过程时,存储过程接收的参数长度为5。如果不指定size,则size为数据类型的最大长度,执行上面的存储过程时,存储过程接收的参数不超过100
建议能写上就写上
不写的话,它是以默认的长度,会导致字符串丢失等问题
VarChar最好写上,我有一次程序就出现过,如果字符串超出它会截去多出的部分
Int 可以不写一般很难超出
来自:http://topic.csdn.net/u/20070527/09/bd116f8b-3600-491c-8656-e3e6e4ca8431.html
例:
create ALTER PROCEDURE dbo._test2
(@Name varchar(100),
@Ret int =0 output
)
AS
set @ret = len(@name)
指定长度时
param=new SqlParameter( "@Name ", SqlDbType.VarChar,5)
param.Value= "djfkejodkfjdkf "
则执行命令后参数@Ret的值为5
本人测式过,以上说的没有错,但是在我的一个ORM里面可能是跟我用的SQLHelper.cs有关系吧size失效了,我还在找原因,希望高手可以指教!