基本的に、DataTable
パーツ番号を含む行と、それらのパーツに関する情報を含むいくつかの列を持つがあります。
これらの情報をデータベースにあるデータと比較するために、私は2つの選択肢のうちの1つがあると判断しました。
オプション1-各行をループしてデータを選択します
void CompareData(DataTable dt) {
foreach (DataRow entry in dt.Rows) {
//select that row
DataRow dbEntry = ExecuteQuery("SELECT * FROM Parts WHERE partno='" + entry["partno"] + "'").Rows[0];
if (dbEntry["info1"] == entry["info1"]) {
//do something
} else {
//do something
}
}
}
オプション2-すべてのデータを一度に選択し、ループを介して比較します
void CompareData(DataTable dt, string[] parts) {
DataTable dbEntries = ExecuteQuery("SELECT * FROM Parts WHERE partno IN('" + String.Join(parts, "','") + "')");
foreach (DataRow entry in dt.Rows) {
foreach (DataRow dbEntry in dt.Rows) {
if (dbEntry["partno"] == entry["partno"]) {
if (dbEntry["info1"] == entry["info1"]) {
//do something
} else {
//do something
}
}
}
}
}
どちらもかなり非効率に見えるので、どうしたらよいかわかりません。LINQはこのプロセスをスピードアップしますか?私は実際にそれを使用したことはありませんが、それを閲覧するだけで役立つもののように見えます。