其实我有疑问,所以请清除它。我有两条线做同样的工作,见下面两者参数赋值的区别
1. cmd.Parameters.AddWithValue("@UserName",objBELUserDetails.UserName);
2. cmd.Parameters.Add("@UserName",SqlDbType.Nvarchar,50).
Value=objBELUserDetails.UserName;
两条线的工作原理是一样的。
如果不提供大小,那么大小默认为参数值的字符串长度,如果省略该类型,则会查看参数值的类型并使用大的case语句将对象的类型映射到相关的Sql类型。显然,如果您自己提供类型以便不必解决问题,则可以帮助您执行代码。
所以,你不认为第二行代码会比第一行花费更多时间,并会影响代码的性能,因为第一行有特定的类型和大小,以便编译器不需要时间来查找取出参数的类型和大小。不是吗?
这是分析指出的是你的应用程序性能最重要的行(或者甚至是最高的,比如20%)。如果没有,为什么花时间呢? – 2013-02-21 07:32:56