【问题标题】:Insert Null value to the Integer Column将 Null 值插入整数列
【发布时间】:2011-09-22 15:09:16
【问题描述】:

通过前端,我想将 NULL 值插入 DataType 为 Int 的列。

我是这样用的:

POP.JobOrderID = Convert.ToInt32(DBNull.Value);

但是我不能插入 Null 值,它会抛出诸如“Object cannot be cast from DBNull to other types”之类的错误:

如何插入 NULL 值?

【问题讨论】:

    标签: c# .net ado.net null int


    【解决方案1】:

    如果你想这样做 POP.JobOrderID 应该输入 int? (nullable int) 而不是 int

    【讨论】:

    • POP 是一个对象,而 JobOrderID 是一个 Int。怎么分配这样的?
    • 我使用的是三层架构。我会传递上面我在问题中给出的参数。如何在这个中应用int?(可为空)?
    【解决方案2】:

    kleinohad 是正确的。此外,您应该分配null,而不是DBNull.Value

    【讨论】:

    • 我使用的是三层架构。我会传递上面我在问题中给出的参数。如何在这个中应用int?(可为空)?
    【解决方案3】:

    像这样:

     POP.JobOrderID = null;    // JobOrderID should be of type int? which is a nullable-int
    

    希望对您有所帮助。

    【讨论】:

      【解决方案4】:

      这个

         POP.JobOrderID = new Nullable<Int32>();
      

      如果 JobOrderID 是可空类型 (int?),也应该可以工作。

      干杯

      【讨论】:

        【解决方案5】:

        使用Nullable&lt;Int32&gt; 或只是别名:int?

        POP.JobOrderID = 5;
        // or
        POP.JobOrderID = null;
        

        在 ADO.NET 中的使用:

        command.Parameters.AddWithValue("@JobOrderId", POP.JobOrderID ?? DBNull.Value);
        

        等于:

        POP.JobOrderID.HasValue ? POP.JobOrderID.Value : DBNull.Value;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-27
          • 2021-10-31
          • 2012-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多