[英]Define a column as nullable in System.Data.DataTable
我需要在 C# VS2013 中定义一个System.Data.DataTable
; 在一列中,它可能是 int 或 null。
但我得到了:
DataSet 不支持 System.Nullable<>。
对于定义:
public DataTable myDataTable
myDataTable = new DataTable("myName");
myDataTable.Columns.Add("ID", typeof(Int32));
myDataTable.Columns.Add("value1", typeof(Int32?)); // run time error
myDataTable.Columns.Add("value2", typeof(Int32?));
有任何想法吗? 解决问题?
使列可以为空后,
DataColumn dc = myDataTable.Columns.Add("value1", typeof(Int32));
dc.AllowDBNull = true;
当我查询它时,我得到了
序列不包含任何元素。
请参阅更新。
更新
int? result = (from r in myDataTable.AsEnumerable()
where r.Field<Int32>("ID") == givenID
&& r.Field<Int32?>("value1") == givenValue1
select r.Field<Int32>("value2")).First();
它是 DataColumn 的一个属性
public DataTable myDataTable
myDataTable = new DataTable("myName");
myDataTable.Columns.Add("ID", typeof(Int32));
DataColumn dc = myDataTable.Columns.Add("value1", typeof(Int32));
dc.AllowDBNull = true;
尝试
public DataTable myDataTable
myDataTable = new DataTable("myName");
myDataTable.Columns.Add("ID", typeof(Int32));
myDataTable.Columns.Add(new DataColumn { ColumnName = "VALUE1", DataType = typeof(int), AllowDBNull = true });
myDataTable.Columns.Add(new DataColumn { ColumnName = "VALUE2", DataType = typeof(int), AllowDBNull = true });
这将使值列可以为空
并在插入时
DataRow dr = myDataTable.NewRow();
dr["VALUE1"] = object.value1==null? (object)DBNull.Value : object.value1;
这将执行所需的操作
或者让它更短一行:
table.Columns.Add(new DataColumn("ID", typeof(Int32)) { AllowDBNull = true });
和:
row["ID"] = (object) nullableId ?? DBNull.Value;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.