前提
Visual Studio2019を使用してWindowsFormアプリケーションを作成しています。
DataTable同士の比較を行い、差分をDataTableに格納して
DataGridViewに表示するようにしたいのですが
この比較をするという部分で躓いています。
調べていると「DataRowComparer」を使うと良さそうなのですが
解説などがC#がほとんどで読み解けません。
どのようにすれば実現できるか
知識をお貸しいただけないでしょうか。
宜しくお願い致します。
補足情報(FW/ツールのバージョンなど)
【環境】
VisualStudio2019Pro
Windows10
【言語】
VB
https://learn.microsoft.com/ja-jp/dotnet/framework/data/adonet/comparing-datarows-linq-to-dataset
ここで言語を VB にすればいいのでは?
それより、今後 .NET の新バージョンは VB 対応を無視するので、これから新規で VB.NET を使うのは致命傷になりかねません。ここから情報はますます減っていくでしょう。
ご回答ありがとうございます。
教えていただきましたサイトを確認しました。
DataRowComparerはDataTableの差分をTrue、Falseで返してくるものだったんですね。
差分のDataRowが返ってきて、それをDataTableにAddすれば何とかできると安易に考えていました…
DataTableの行を1行ずつループで比較していくほうがいいものなのでしょうか?
また今後のVBについての情報ありがとうございます。
少しずつC#に移行できるように勉強していきます。
紹介したページに書いてある通り、Except で差分をとって CopyToDataTable で DataTable に変換するのが良いと思います。
Except は SQL の except に相当するものなので、右側のテーブルにだけあるものは除外されます。
それも入れたければ他の演算も組み合わせてください。
ありがとうございます。
現在の私の知識ではループさせて1行ずつ確認する方法しか出てこなかったので
すごく助かります。
ただ教えていただいた内容を理解して、実装するのにまだまだ時間がかかりそうです。
もしよろしければ
参考コードを提示していただけると幸いです。
参考コードはそこに Intersect のがありますよね。
難解ですが頑張ってみます。

あなたの言う「DataTable の差分」とは具体的にどういうものですか?

回答1件
あなたの回答
tips
プレビュー