我基本上试图从excel文件读取并在该文件中找到某个ID号。现在它打印所有的行作为匹配,我想帮助找出原因。在输入字符串行中匹配单元格
// input to search for
string value = textBox3.Text;
// verify the input is the correct format
Match match = Regex.Match(value, @".*[0-9].*");
Match myMatch = Regex.Match(value, textBox3.Text);
Console.WriteLine(value);
foreach (DataRow row in xlsDs.Rows)
{
if (match.Success && myMatch.Success)
{
Console.WriteLine(textBox3);
Console.Write(row.ItemArray.ToString());
Console.WriteLine("This was found");
}
}
foreach循环会遍历所有行的,就像一个普通的循环从0到Rows.Count。我不明白为什么你不能像你目前正在做的那样简单地使用foreach语句。 – HaukurHaf
我不认为从foreach转换为for会解决任何问题。相反,我会检查你的匹配功能,我敢打赌错误在那里。你的错误似乎是你比较textBox3这两个匹配,然后打印每一行相同的东西。您需要检查行是否与您正在搜索的内容匹配。 – bkribbs
你的Excel工作表是什么样子的,是同一列中的所有ID,并且该列中的索引或名称总是相同?如果是这样,您可以直接将该列与您的输入值进行比较,然后在找到该行后编写整行 – Domitius