下手な英語でごめんなさい...
データテーブルの例
| ID_UEH | ID_F |
|......1......|...10...|
|......1......|...11...|
|......2......|...10...|
|......2......|...12...|
|......3......|...10...|
|......3......|...13...|
次の仕様の行があるかどうかをチェックする関数を作成したい:
- 列 'ID_UEH' の値が異なるが、列 'ID_F' の値が同一である
私はこれを試しました:
(from rowA in DataTableA.Select()
join rowB in DataTableA.Select()
on rowA["ID_F"] equals rowB["ID_F"]
where rowA["ID_UEH"] != rowB["ID_UEH"]).Count()
そしてコードは0を返します
それから私はこれを試します:
(from rowA in DataTableA.Select()
join rowB in DataTableA.Select()
on rowA["ID_F"] equals rowB["ID_F"]
where rowA["ID_UEH"] != rowB["ID_UEH"] &&
rowA["ID_F"] == rowB["ID_F"]).Count()
コードは 6 を返します (DataTableA.Rows.Count = 6)
それから彼らは私に急ぐように頼んだので、私はこれをしました:
int numRows = 0;
foreach (DataRow rowA in DataTableA.Select())
{
numRows = tabela.Select(
"ID_UEH <> "+Convert.ToInt32(rowA["ID_UEH"]) + " AND " +
"ID_F= " + Convert.ToInt32(rowA["ID_F"])
).Length;
if (numRows > 1)
break;
}
コードは私が望むものを返します。
私の質問は、私が何を間違えたのですか?