加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL – .NET – SqlParameters – AddWithValue – 未指定Param

发布时间:2020-12-12 07:09:05 所属栏目:MsSql教程 来源:网络整理
导读:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection.addwithvalue.aspx 我习惯使用add()函数将sql参数添加到sqlCommand.这允许我指定sqlParameter的类型,但它需要另一行来设置值. 使用AddWithValue函数很好,但它会跳过“
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection.addwithvalue.aspx

我习惯使用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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读