基本上,我有一个包含零件号和一些列有关这些零件信息的DataTable。
为了将这些信息与我们在数据库中拥有的数据进行比较,我确定有两种选择。
选项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会加速这个过程吗?我从未真正使用过它,但浏览一下它看起来像是能帮助的东西。
DataTable dt
。但是如果我将其提供给数据库表,那么我可以定制SELECT语句。最终,我想在对其进行一些验证检查后使用新数据更新这些行。 - tedski