当我尝试加入2个数据表时,对象引用未设置为对象的实例
本文关键字:设置 对象引用 对象 实例 数据表 2个 | 更新日期: 2023-09-27 18:18:17
我正在尝试加入2 DataTables
,但我得到这个错误:
Object reference not set to an instance of an object
这就是我正在做的:
DataTable NodeDataTable = new DataTable();
DataTable sdosDataTable = new DataTable();
private DataTable NodedataTable()
{
XmlTextReader xmlreader = new XmlTextReader(Server.MapPath("stuff.xml"));
DataSet ds = new DataSet();
ds.ReadXml(xmlreader);
xmlreader.Close();
if (ds.Tables.Count != 0)
{
NodeDataTable = ds.Tables[22];
}
return NodeDataTable;
}
private DataTable SdosDataTable()
{
XmlTextReader xmlreader = new XmlTextReader(Server.MapPath("stuff.xml"));
DataSet ds = new DataSet();
ds.ReadXml(xmlreader);
xmlreader.Close();
if (ds.Tables.Count != 0)
{
sdosDataTable = ds.Tables[10];
}
return sdosDataTable;
}
和连接两个数据表:
private void JoinNodeSdosDT()
{
DataColumn obj_NodeID, obj_SdosID;
DataSet ds1 = new DataSet();
NodeDataTable = NodeDataTable.Copy();
sdosDataTable = sdosDataTable.Copy();
ds1.Tables.Add(NodeDataTable);
ds1.Tables.Add(sdosDataTable);
obj_NodeID = ds1.Tables["node"].Columns["node_Id"];
obj_SdosID = ds1.Tables["sdos"].Columns["node_Id"];
sdosDataTable.Columns.Add("typeCodee");
DataRelation obj_NodeandSdosRelation = new DataRelation("dept_reln", obj_NodeID, obj_SdosID);
ds1.Relations.Add(obj_NodeandSdosRelation);
foreach (DataRow dr_NodeSods in ds1.Tables["sdos"].Rows)
{
DataRow dr_NondeeeR = dr_NodeSods.GetParentRow("dept_reln");
dr_NodeSods["typeCodee"] = dr_NondeeeR["typeCode"];
}
DataTable dtResult = ds1.Tables["sdos"].DefaultView.ToTable(false, "node_Id", "typeCode", "sdos_Id");
GridView1.DataSource = dtResult;
}
有一些匹配的ID,我该怎么做才能解决我的问题。
我删除了datatable Images,没有使用它们
看起来像dr_NondeeeR
是null
:
DataRow dr_NondeeeR = dr_NodeSods.GetParentRow("dept_reln");
dr_NodeSods["typeCodee"] = dr_NondeeeR["typeCode"];
因为不管什么原因GetParentRow
返回null
作为DataRow的文档。Item (String)声明,访问一个不存在的列应该给出一个ArgumentException
。你得到的是NullReferenceException
。如果这确实发生在你给出的行中,那么我只能假设
DataRow dr_NondeeeR = dr_NodeSods.GetParentRow("dept_reln");
给出一个空引用。