我有一个非常具体的要求。我有两个数据表(两个相同的模式)一个表(aqTable)有2行而另一个(rapidsTable)有5行。我需要检查aqTable中的那两行是否存在于那5行rapidTable中,如果这两行存在于rapidsTable中,则将剩余(差异)3行复制到aqTable。
我是以这种方式尝试过的,但是当它为第3行循环时抛出异常“没有行就位置2”,因为其中一个表中的行数不超过2行。
if (rapidsTable.Rows.Count > aqTable.Rows.Count)
{
try
{
int aqRow = 0; rows = 0;
int rCount = rapidsTable.Rows.Count;
for (int rRow = 0; rRow < rCount; rRow++)
{
if (aqTable.Rows.Count == 0)
{
DataRow row = aqTable.NewRow();
row.ItemArray = rapidsTable.Rows[aqRow].ItemArray;
rowStr += rapidsTable.Rows[rRow][0].ToString() + ",";
aqTable.Rows.Add(row); rows++;
}
else
{
string str = aqTable.Rows[aqRow].ToString();
if (aqTable.Rows.ToString() == null || aqTable.Rows.ToString() == "")
{ }
if ((aqTable.Rows[aqRow][1].ToString() == rapidsTable.Rows[rRow][1].ToString()) &&
(aqTable.Rows[aqRow][2].ToString() == rapidsTable.Rows[rRow][2].ToString()) &&
(aqTable.Rows[aqRow][3].ToString() == rapidsTable.Rows[rRow][3].ToString()))
{ }
else
{
DataRow row = aqTable.NewRow();
row.ItemArray = rapidsTable.Rows[aqRow].ItemArray;
rowStr += rapidsTable.Rows[rRow][0].ToString() + ",";
aqTable.Rows.Add(row); rRow = rRow - 1; rows++;
}
}
aqRow++;
}
catch (Exception ex)
{ throw new Exception("R>AQ Copy: " + ex.Message); }
有没有办法解决这个异常。我从许多不同的博客尝试了许多不同的方式。发现这个博客有一些最好的例子,想分享我的问题。