4

当我尝试将新列添加到数据表中时,我得到的对象引用未设置为对象的实例。这是我的代码:

DataColumn clUniqueID = new DataColumn();

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

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

4

4 回答 4

6

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

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

DataTable dtMain = new DataTable(); //initialized datatable
于 2012-12-14T12:23:52.150 回答
1

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

当两个表的主键仅在大小写不同时,您可能会遇到空引用异常。来源

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

于 2016-09-19T16:51:31.990 回答
0

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

DataTable dtMain = new DataTable();

如果您像这样创建它:-

DataTable dtMain;

然后是它的空对象。

于 2012-12-14T12:23:34.607 回答
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(),
);

data1null有价值的,异常是在添加行之前在第 3 行(在这种情况下)行显示相同的错误。放置一个 null('?') 检查对我有帮助。

如果有人忘记了空检查,这应该会有所帮助

于 2018-11-30T07:33:30.447 回答