当前位置: 代码迷 >> ASP.NET >> sqlparameter 要不要指定数据类型跟大小
  详细解决方案

sqlparameter 要不要指定数据类型跟大小

热度:10894   发布时间:2013-02-25 00:00:00.0
sqlparameter 要不要指定数据类型和大小?
C# code
    int id=0;    string biaoti="asasa";    SqlParameter[] mypa=new SqlParameter[2];          mypa[0]=new SqlParameter("@id",id);          mypa[1] = new SqlParameter("@biaoti", TextBox1.Text);         

C# code
    int id=0;    string biaoti="asasa";    SqlParameter[] mypa=new SqlParameter[2];          mypa[0]=new SqlParameter("@id",SqlDbType.Int,4);         mypa[0].Value=id;          mypa[1] = new SqlParameter("@biaoti", SqlDbType.NVarChar,50);          mypa[1].Value=biaoti;


这2种有什么区别?第一种是不是会出错?

------解决方案--------------------------------------------------------
若没有指定类型和大小,则取决于你在新建字段的时候设置的类型和大小
------解决方案--------------------------------------------------------
没有限制而已,转换不成SQL输入参数的类型的话,就会报SQL的错误。
------解决方案--------------------------------------------------------
可以指定也可以不指定。
------解决方案--------------------------------------------------------
一般都指定。
int和datetime之类的一般就不指定长度了。
------解决方案--------------------------------------------------------
int不用,其他指定
------解决方案--------------------------------------------------------
根据需要使用如int就可不用指定大小
SqlParameter (String, SqlDbType) 用参数名称和数据类型初始化 SqlParameter 类的新实例。 
SqlParameter (String, SqlDbType, Int32) 用参数名称、SqlDbType 和大小初始化 SqlParameter 类的新实例。 
SqlParameter (String, SqlDbType, Int32, String) 用参数名称、SqlDbType、大小和源列名称初始化 SqlParameter 类的新实例。 

 

------解决方案--------------------------------------------------------
楼主,
那只是sqlparameter的构造函数啊
你还可以这样写
mypa[0]=new SqlParameter("@id",SqlDbType.Int,4,id);
------解决方案--------------------------------------------------------
区别就是显示转换和隐式转换,如果不声明类型是由数据库来进行隐式类型转换,异常也是由数据库抛出。如果声明类型异常直接由应用程序转换并抛出转换异常,还有个好处某些类型可以节省空间。
  相关解决方案