出于某种特殊原因,我必须将数据存储到 DataTable 中,并意识到它不支持可为 null 的类型:抛出 System.NotSupportedException:DataSet 不支持 System.Nullable<>。有没有比枚举类型和为每个可空类型编写自定义代码更有效的转换方法?
最佳答案
但它支持可空类型, AllowDbNull
默认情况下为 true
:
var table = new DataTable();
table.Columns.Add("NullableInt", typeof(int));
table.Rows.Add(1);
table.Rows.Add(2);
table.Rows.Add(3);
table.Rows.Add((int?)null);
使用DataRow
extension methods支持可为 null 的类型,例如:
foreach(DataRow row in table.Rows)
{
int? value = row.Field<Int32?>("NullableInt");
// modify the value with SetField:
row.SetField<Int32?>("NullableInt", null);
// or:
row.SetField("NullableInt", (int?)null);
}
关于.net - 如何将可空类型转换为其基础类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18720426/