循环操作没有停止c#



当我试图找到未保存在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循环之前将其初始化为假)。

最新更新