其实我有一个疑问,所以请清除它。我有 2 行做同样的工作,见下文
1. cmd.Parameters.AddWithValue("@UserName",objBELUserDetails.UserName);
2. cmd.Parameters.Add("@UserName",SqlDbType.Nvarchar,50).
Value=objBELUserDetails.UserName;
两条线的工作原理相同。
如果不提供大小,则大小默认为作为参数值的字符串的长度,如果省略类型,则它会查看参数值的类型并使用大 case 语句来映射对象的类型到相关的 Sql 类型。如果您自己提供类型,显然有助于您的代码的性能,这样它就不必解决它。
所以你不认为第二行代码会比第一行花费更多时间并影响代码的性能,因为第一行有特定的类型和大小,这样编译器就不会花时间找出类型和参数的大小。不是吗?