栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Parameters.Add(string,object)和Parameters.AddWithValue之间的区别

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Parameters.Add(string,object)和Parameters.AddWithValue之间的区别

功能上没有区别。实际上,两者都这样做:

return this.Add(new SqlParameter(parameterName, value));

他们不赞成使用旧参数的原因

AddWithValue
是增加了清晰度,以及第二个参数是
object
,这使得某些人不能立即看出
Add
被调用的重载,并且导致了截然不同的行为。

看一下这个例子:

 SqlCommand command = new SqlCommand(); command.Parameters.Add("@name", 0);

乍一看,它看起来像是在调用

Add(string name, object value)
重载, 但不是 。这就是
Add(string name,SqlDbType type)
超载!这是因为0可以隐式转换为枚举类型。所以这两行:

 command.Parameters.Add("@name", 0);

 command.Parameters.Add("@name", 1);

实际上导致两种不同的方法被调用。

1
不能隐式转换为枚举,因此它选择
object
重载。使用
0
,它选择枚举重载。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/575958.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号