@L_
404_0@
我习惯使用add()函数将sql参数添加到sqlCommand.这允许我指定sqlParameter的类型,但它需要另一行来设置值.
使用AddWithValue函数很好,但它会跳过“指定参数类型”步骤.
我猜这会导致参数作为单引号(”)中包含的字符串发送,但我不确定.
是这种情况,这是否会导致存储过程的性能显着降低?
注意:我理解通过为params指定数据类型来验证.NET端的用户数据是很好的 – 我只关心.NET或sql端的AddWithValue的反射类型开销.
类型推导发生在客户端.在
sqlParameter里面,它基本上有一个位switch语句来确定你指定的值对应的
sql类型.因此发送到
sql Server的
内容没有区别,但确定.NET类型对应的
sql类型的开销非常小.在宏观方案中,
性能成本甚至不会
显示为实际在
数据库调用中花费的时间.
在指定sql类型时,您仍然可以在一行中执行此操作:
cmd.Parameters.Add("@something",sqlDbType.NVarChar).Value = someString;