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

添加SqlCommand参数时应何时使用“ SqlDbType”和“大小”?

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

添加SqlCommand参数时应何时使用“ SqlDbType”和“大小”?

以我的经验,我将确保自己执行以下操作:

  • 确保是您为参数定义了 数据类型 。ADO.NET在猜测方面做得不错,但是在某些情况下,它可能会非常糟糕-因此,我将避免使用此方法:
    cmd.Parameters.Add("@Name").Value = "Bob";

    cmd.Parameters.AddWithValue(“@Name”, “Bob”);

让ADO.NET通过传递的值来猜测参数的类型是棘手的,并且如果由于某种原因将其关闭,则这些跟踪和查找的确是棘手的错误!想象一下,当您传入

DBNull.Value
-ADO.NET应该选择哪种数据类型时会发生什么?

明确一点-说出您想要的类型!

  • 如果您使用的是字符串参数,请确保 明确定义长度 -因此,我也将避免使用此方法:
    cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = "Bob";

如果不提供长度,则ADO.NET可能默认为某个任意值,或者作为值传递的字符串的长度,或者其他方式-
您永远不确定。而且,如果您的长度与存储过程的实际期望不符,您可能会看到转换和其他不愉快的惊喜。因此,如果您定义一个字符串,也要定义其长度!

因此,在您的情况下,唯一对我有效的方法是此方法:

cmd.Parameters.Add("@Name", SqlDbType.VarChar, 20).Value = "Bob";

因为它a)定义要显式使用的数据类型,并且b)显式定义字符串的长度。



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

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

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