我试图将NULL值插入列类型'int'。我正在使用以下功能,但仍然会收到InvalidOperationException。这是我的代码。请提出建议。

p.type_id的值为“ null”。

cmd.Parameters.AddWithValue("@type_id", ToNullableInt32(p.type_id))

    public static int ToNullableInt32(string s)
    {
        int i;
        if (Int32.TryParse(s, out i)) return i;
        return null;
    }

最佳答案

尝试:

 public static int? ToNullableInt32(string s)
{
    int i;
    return (Int32.TryParse(s, out i)) ? i : null;
}


编辑:我注意到您对您的原始问题的评论,仅对DBNull值有效。在这种情况下,请尝试添加...

cmd.Parameters.AddWithValue("@type_id", ToNullableInt32(p.type_id) ?? DBNull.Value)


...除了ToNullableInt32方法更新之外。

09-20 03:59