将DataColumn添加到DataTable时,对象引用未设置为对象的实例

时间:2012-12-14 12:18:45

标签: c# datatable

当我尝试将新Column添加到Datatable时,我得到的对象引用没有设置为对象的实例。这是我的代码:

DataColumn clUniqueID = new DataColumn();

clUniqueID.Caption = "UniqueID";
clUniqueID.ColumnName = "UniqueID";
clUniqueID.DataType = typeof(int);
dtMain.Columns.Add(clUniqueID);

dtMain是一个公共DataTable。我将此代码放在我的Win应用程序中的表单加载中,当我尝试加载我的表单时,它会抛出错误。 有什么想法吗?

4 个答案:

答案 0 :(得分:4)

您应该确保实际初始化dtMain:

DataTable dtMain; //datatable not initialized, it will be null

DataTable dtMain = new DataTable(); //initialized datatable

答案 1 :(得分:1)

在合并期间可以获得空引用的另一种情况是列名称不同,即使是大小写

  

当两个表具有主表时,您可能会获得空引用异常   只有大小写不同的键。 source

这正是我的问题。 两个数据表中主键的列名必须相同!

答案 2 :(得分:0)

您需要像这样初始化DataTable: -

DataTable dtMain = new DataTable();

如果你这样创建它: -

DataTable dtMain;

然后是它的空对象。

答案 3 :(得分:0)

我遇到了一个非常不同的问题,即在价值物品中不可用

请考虑以下事项:

DataTable dtStatusDetails = new DataTable();
    dtStatusDetails.Columns.Add("D1", typeof(string));
    dtStatusDetails.Columns.Add("D2", typeof(string));
dtStatusDetails.Rows.Add(
    data1.Value.ToString(),
    data2.Value.ToString(),
);

这里data1的值为null,并且在添加行之前,异常在第3行(在本例中)显示相同的错误。 进行null('?')检查对我有帮助。

如果有人忘记了空支票,这应该是完整的帮助