我试图将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;
}
答案 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)
{
...
}