日期:2014-05-19  浏览次数:20529 次

是否应使用SqlParameter的SqlDbType?
1.可以直接使用名称和值来新建,如下:
SqlParameter   para   =   new   SqlParameter(string   parameterName,object   value);
2.也可以先指定名称、类型、大小,后再传值,如下:
SqlParameter   para   =   new   SqlParameter(string   parameterName,SqlDbType   dbType,int   size);
para.Value   =   "name ";
----------------------------
问题:
1.上面两个有什么实质的区别或性能上的差异,是不是用了SqlDbType比不用更好?
2.SqlDbType的作用是什么?
3.因为第一种方法不用指定SqlDbType也一样可以运行,所以在实际使用中是否要用SqlDbType?或在什么情况要用SqlDbType?

------解决方案--------------------
更好的数据表示

当然 有更好的性能

更好的 数据约束
------解决方案--------------------
强烈推荐使用。
------解决方案--------------------
指定了SqlDbType后明确的指定了参数对数据库的类型,
如果不指定,可能会出现类型上的不一致.
------解决方案--------------------
这个问题感觉上好像和VB里的变体类型有点相似,
你可以不声明变量的类型,也可以声明,在不出错的情况下,相差无几.
------解决方案--------------------
上个项目种我反正就用两个参数来构造 SqlParameter 不会出现问题
但是性能没进行对比 本人较懒 觉得速度飞快
------解决方案--------------------
楼主没有考虑过这个问题吗?

new SqlParameter(string parameterName,0);

这个是调用的哪个构造函数呢:
public SqlParameter(string parameterName, object value)
还是
public SqlParameter(string parameterName, SqlDbType dbType)
呢?
------解决方案--------------------
当然指定明确的类型后会在性能上有所提高.
------解决方案--------------------
在一个严格要求的OS里,要求开发人员的int size必须和字段的size大小一致