我试图将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方法更新之外。