我需要在C#VS2013中定义一个System.Data.DataTable;在一列中,它可以是int或null。
但是我得到了:

对于定义:

  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;

MSDN about AllowDBNull

10-06 01:09