C#中合并datatable出现错误,目标数组的长度不够。请检查destIndex和长度以及数组的下限

DataTable newtable = GZBH1.Clone();
object[] obj = new object[newtable.Columns.Count];
for (int j = 0; j < GZBH1.Rows.Count; j++)
{
GZBH1.Rows[j].ItemArray.CopyTo(obj, 0);
newtable.Rows.Add(obj);
}
for (int j = 0; j < GZBH2.Rows.Count; j++)
{
GZBH2.Rows[j].ItemArray.CopyTo(obj, 0);
newtable.Rows.Add(obj);
}
for (int j = 0; j < GZBH3.Rows.Count; j++)
{
GZBH3.Rows[j].ItemArray.CopyTo(obj, 0);
newtable.Rows.Add(obj);
}
for (int j = 0; j < GZBH4.Rows.Count; j++)
{
GZBH4.Rows[j].ItemArray.CopyTo(obj, 0);
newtable.Rows.Add(obj);
}
for (int j = 0; j < GZBH5.Rows.Count; j++)
{
GZBH5.Rows[j].ItemArray.CopyTo(obj, 0);
newtable.Rows.Add(obj);
}
for (int j = 0; j < GZBH6.Rows.Count; j++)
{
GZBH6.Rows[j].ItemArray.CopyTo(obj, 0);
newtable.Rows.Add(obj);
}
for (int j = 0; j < GZBH8.Rows.Count; j++)
{
GZBH8.Rows[j].ItemArray.CopyTo(obj, 0);
newtable.Rows.Add(obj);
}
好像这里 object[] obj = new object[newtable.Columns.Count];的newtable.Columns.Count长度有问题,但不会改,大侠们请帮忙,急求如果能解决问题可以再追加悬赏
最新回答
守护在此方

2025-03-30 06:07:14

这个问题,就是你的GZBH1到8,这些DataTable的列数必须一样。
newtable你其实就是拷的GZBH1的结构,有多少列,这个obj就是多少列。你后面的DataTable列数不一致,你一ItemArray.CopyTo就下标超了。
追问
GZBH1到8我是用select语句分别调用同一个表的几行,这些DataTable的列数应该是一样的吧。我合并前两个DataTable时是可以放到newtable里的,但往后加的时候出现了这个问题
追答
但你的代码里的下标问题,就只有这个地方了。你跟一下1到8的所有的DataTable,看看是不是有列数不一样的。如果列数不一样就会出现这个问题。
追问
我知道怎么回事了,因为我的这些DataTable里有空表,我想知道怎么将空的DataTable删除
絮雨羽

2025-03-30 00:40:37

长度有问题,但不会改,大侠们请帮忙