将string null值转换为int

时间:2014-03-27 18:39:10

标签: c# sql-server

我试图将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;
    }

2 个答案:

答案 0 :(得分:3)

尝试:

 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方法更新。

答案 1 :(得分:2)

它应该是一个可以为空的

public static int? ToNullableInt32(string s) 
{
   ...
}