• new SqlParameter("@content", SqlDbType.VarChar,30) 里的30,有30和没有写30有什么区别


    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失效了,我还在找原因,希望高手可以指教!

  • 相关阅读:
    GitHub统计
    不错的第三方控件
    仿射变换(CGAffineTransform)使用小结
    AffineTransform(仿射变换)
    使用CAShapeLayer实现复杂的View的遮罩效果
    使用CAShapeLayer实现一个音量大小动态改变的控件
    window10 Docker仓库访问
    postgresql从timestamp(6)复制到timestamp(0),时间会变
    在编译Dll文件的时候遇到dll 链接不一致的问题
    qtquery 取列的值
  • 原文地址:https://www.cnblogs.com/SALIN/p/1770546.html
Copyright © 2020-2023  润新知