我有两个结构相同的数据表
第一个有第二个的一行
第二个有行集
我想要的是获取第二个数据表中第一个数据表的行旁边的行。
他的名字是第一个数据表:: temp
第二个数据表,他的名字是:: dt
我执行以下操作:
DataTable temp = new DataTable();
temp = dt.Clone();
DataColumn[] keyColumn = new DataColumn[1];
keyColumn[0] = temp.Columns["photoId"];
temp.PrimaryKey = keyColumn;
temp = (DataTable)(Session["currentImage"]);
DataRow[] drr = new DataRow[1];
index = dt.Rows.IndexOf(temp.Rows[0]);
但索引始终带有一个值= -1
尽管temp.rows [0]的内容一直在变化
当我写dt.Rows.IndexOf(dt.Rows [1])为考试我得到1
但这不是我想要做的,我想要做的就是在第二个dataTable中获取第一个dataTable的数据行旁边的数据行
请帮帮我。
答案 0 :(得分:6)
DataRow
知道它在哪个表中,因此具有相同数据但在不同表中的两行仍然是不同的行。
为什么不查找具有相同主ID的行,或者您的案例中其他任何有意义的行?
答案 1 :(得分:3)
IndexOf()使用对象的默认比较器来执行匹配。 大多数对象的默认比较器是参考比较,这解释了为什么你一直得-1。
出于同样的原因:
int iA = 0;
int iB = 0;
object oA = 0;
object oB = 0;
iA == iB = true;
oA == oB = false