我没有在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驱动该属性的值是不相关的。

在其他数据库行为可以不同,当然。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top