当我试图找到未保存在excel中的值时,我无法停止循环并从MessageBox
获得消息
killExcel();
OpenFileDialog file = new OpenFileDialog();
string filename = Path.GetFileName(file.FileName);
if (file.ShowDialog() == DialogResult.OK) //if there is a file chosen by the user
{
Boolean chc = false;
var Excel = new Microsoft.Office.Interop.Excel.Application();
//var xlWB = Excel.Workbooks.Open("C:/Users/User/Desktop/ttt.xlsx");
var xlWB = Excel.Workbooks.Open(Path.GetFullPath(file.FileName));
var xlSht = xlWB.Worksheets[1];
Microsoft.Office.Interop.Excel.Range range = xlSht.Columns[1];
Microsoft.Office.Interop.Excel.Range findRange;
object missing = System.Reflection.Missing.Value;
findRange = range.Find(id_v.Text, missing,
Microsoft.Office.Interop.Excel.XlFindLookIn.xlValues,
Microsoft.Office.Interop.Excel.XlLookAt.xlPart,
Microsoft.Office.Interop.Excel.XlSearchOrder.xlByRows,
Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext, false, missing, missing);
string result = "";
int a = range.Rows.Count;
if (findRange != null)
{
while (chc==false)
{
for (int i = 1; i <= a; i++)
{
result = Convert.ToString(xlSht.Cells[i, findRange.Column].Value);
if (result == id_v.Text && result != null)
{
id.Text = result;
chc = true;
break;
}
}
if (chc==false) {
MessageBox.Show("Not found!");
break;
}
}
}
}
对不起,我只是一个编程初学者,我不明白为什么当值没有创建时循环不停止
你的while (chc==false)将总是返回false如果值没有被发现保存在无限循环中
删除while(csc=false)循环。for循环完成您尝试做的事情,如果它在没有外部while循环的情况下找到条目,它将退出。当for循环退出时,csc将为真(因为在找到条目时设置了它),或者csc将为假(因为在进入for循环之前将其初始化为假)。