首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数化SqlCommand --指定SqlDbType的好处?

参数化SqlCommand --指定SqlDbType的好处?
EN

Stack Overflow用户
提问于 2010-12-17 00:24:58
回答 4查看 767关注 0票数 8

各位朋友:

如果我没有记错的话,可以通过为每个参数指定SqlDbType或不为每个参数指定sql来生成参数化的sql查询。似乎我可以通过仅提供参数名称和参数值来构造SqlParameter。指定SqlDbType的好处是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-17 00:41:44

这样做的好处是:您可以清楚地控制参数的SqlDbType

否则,ADO.NET必须根据您在.AddWithValue方法中提供的值进行猜测。这些猜测在大多数情况下都是很好的--但是如果你提供了一个DBNull.Value,那么要做出一个经过深思熟虑的猜测就有点棘手了……

此外,如果您提供了一个字符串,那么能够指定最大值通常是有益的。字符串参数长度(存储过程中VARCHAR(x)定义中的x )。如果不这样做,ADO.NET将使用当前长度,这有时可能是一件好事,有时也可能是件坏事。

所以总的来说:它只会给你更多的控制权,而且你的意图更明确/更清晰。

票数 6
EN

Stack Overflow用户

发布于 2010-12-17 00:43:07

如果指定SqlDbType,就可以确保根据提供SqlDbType对提供的参数值进行验证,因此如果数据不匹配,就会更早地捕获错误(否则会从SQL Server获得异常)。

票数 2
EN

Stack Overflow用户

发布于 2010-12-17 02:16:53

我同意通过使用特定的SqlDbType,您可以获得更多的控制权。在处理文本时需要更多控制的另一个原因是在处理unicode文本时。前面的例子,使用SqlDbType.NVarChar与SqlDbType.VarChar。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4462939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档