我在sql-server 2012中有一个表,其中的列是数据类型int但也可以为空。
我有一个文本框,当留空时应该将NULL
插入可以为空的int单元格中。但我遇到的问题是要发送哪种类型以便翻译为null
。我想要的是int的数据类型,但也要发送到数据库中的null(int?)。
var tbl_row = db.table.Where(n => n.key.Equals(key)).SingleOrDefault();
tbl_row.nullable_int = this.tb.Text == "" ? [null int value] : int.Parse(this.tb.Text);
答案 0 :(得分:4)
你应该写:
tbl_row.nullable_int = this.tb.Text == "" ? (int?)null : int.Parse(this.tb.Text);
使条件运算符表达式有效。
first_expression和second_expression的类型必须相同,或者从一种类型到另一种类型必须存在隐式转换。
在您的情况下,null
和评估为int
的表达式混淆了编译器。通过将第一个表达式显式地转换为int?
,现在有一种方法可以弄清楚如何评估条件表达式。
答案 1 :(得分:0)
有一个DBNull类的单例实例。尝试协助DBNull.Value