ISNULLABLE的DbParameter功能?
-
21-08-2019 - |
题
我没有在ADO.Net带参数的工作非常多。我正在写一个自定义的.NET数据提供程序(仿照的SqlClient),并有实现我的参数类,它的DbParameter继承了IsNullable属性。我的数据提供者将不支持存储过程,所以我将只支持输入(取代样式)的参数。
在MSDN文档上ISNULLABLE的功能相当不清楚,陈述“获取或设置一个值,该值指示该参数是否接受空值”。谷歌搜索变成了很多人无所适从ISNULLABLE呢,说ISNULLABLE设置为false不会使用参数将一个空值,因为他们本来期望禁止他们。
在此基础上,我想,也许IsNullable属性涉及使用与存储过程,和存储的过程的参数是否是空的,没有是否该参数值可以为空。
在这种情况下,因为我不会有存储过程,我的实现可以只是:
public override bool IsNullable { get { return false; } set {} }
要避免反复折腾一些测试代码怎么看的SqlParameter的执行ISNULLABLE作品,我会很感激,如果有人使用参数可以解释ISNULLABLE经历编写代码。
解决方案
在IsNullable属性是信息。它是有用的,当代码的一部分创建参数和另一个实际使用它。例如,该参数可以被自动地从数据库中,在这种情况下是有帮助的程序员能够看到空值是否是可能被接受的。
这是我的IsNullable属性的认识。我真的不知道任何文件,即“证明”这实际上是正确的。
支持这一看法将是甲骨文Oracle.DataAccess.Client.OracleParameter
类时,其中它们的文档状态:
ISNULLABLE
此属性不被支持。
和它是一个事实,即与Oracle 10或11或12接口连接时,无论是经由MS驱动程序或所引用的Oracle驱动该属性的值是不相关的。
在其他数据库行为可以不同,当然。
不隶属于 StackOverflow