使用可空字段时,建议的语句是什么?
这四项任务似乎工作正常,我只是想知道我应该使用哪种陈述。
DataRow detailRow;
...
int? field = detailRow["fieldName"] == DbNull.Value ? default(int?) : (int)detailRow["fieldName"];
int? field = (int?)detailRow["fieldName"];
int? field = Int32.TryParse(detailRow["fieldName"] as String, out var parsedInt) ? parsedInt : default(int?)
int? field = detailRow.Field<int?>("fieldName"); //Field is a extension from System.Data
答案 0 :(得分:2)
using System.Data;
...
int? field = detailRow.Field<int?>("fieldName");
使用.Field
扩展程序https://msdn.microsoft.com/en-us/library/bb360891(v=vs.110).aspx
答案 1 :(得分:1)
如果您知道该列的数据类型为int?
(或任何其他可以为空的类型),则可以使用以下内容:
int? field = detailRow["fieldName"] as int?;
代码简短,易读且不言自明。如果该列包含int?
以外的任何内容,则无论如何都会分配NULL
。