C# 尝试完全不执行catch块

C# 尝试完全不执行catch块,c#,C#,我正试图从MicrosoftAcess中获取一些数据,并通过MessageBox进行检查,这样用户就可以查看这些数据是否是他想要的,但代码根本没有执行。我看不到任何消息框,也没有引发异常。 下面是我在按钮事件中输入的代码。(我只做了第一个if,CNPJ) 问题可能是缺少访问DataReader值的矩阵,因为foreach块从未执行过。最后我用了一个带int的while string _cmd = "SELECT razao_social FROM tblImobiliarias WHERE cn

我正试图从MicrosoftAcess中获取一些数据,并通过MessageBox进行检查,这样用户就可以查看这些数据是否是他想要的,但代码根本没有执行。我看不到任何消息框,也没有引发异常。 下面是我在按钮事件中输入的代码。(我只做了第一个if,CNPJ)


问题可能是缺少访问DataReader值的矩阵,因为foreach块从未执行过。最后我用了一个带int的while

string _cmd = "SELECT razao_social FROM tblImobiliarias WHERE cnpj ='" + ValorConsulta.Text + "'";
                    string conn = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=\\\\10.7.41.153\\Apoio\\Davi_Database\\Base_Imo.accdb";
                    OleDbConnection Connection = new OleDbConnection(conn);
                    OleDbCommand Command = new OleDbCommand(_cmd, Connection);
                    Connection.Open();
                    OleDbDataReader reader = Command.ExecuteReader();
                    while (reader.Read())
                    {
                        int _resMatriz = 0;
                        DialogResult result;
                        result = MessageBox.Show("Encontrado imobiliária: " + reader[_resMatriz] + ".\nEstá correto?", "Pesquisa", MessageBoxButtons.YesNo);
                        _resMatriz++;
                        if (result == System.Windows.Forms.DialogResult.Yes)
                        {
                            MessageBox.Show("CarregaImo()");
                            break;
                        }
                        else
                        {
                            continue;
                        } 
                    }

设置断点并在代码执行时逐步遍历代码。检查监视窗口中的变量。看看会发生什么。将断点放在这一行:
if(TipoConsulta.Text==“CNPJ”)
。查看手表窗口中的
TipoConsulta.Text
内容。是不是
“CNPJ”
?从那里开始,一步一步,调试它。也许你的同事什么也没发现。这样就不会有MessageBox了
reader.Read()
正在返回
false
?您有一个使用Debugger在代码中导航的指南,还可以阅读
string _cmd = "SELECT razao_social FROM tblImobiliarias WHERE cnpj ='" + ValorConsulta.Text + "'";
                    string conn = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=\\\\10.7.41.153\\Apoio\\Davi_Database\\Base_Imo.accdb";
                    OleDbConnection Connection = new OleDbConnection(conn);
                    OleDbCommand Command = new OleDbCommand(_cmd, Connection);
                    Connection.Open();
                    OleDbDataReader reader = Command.ExecuteReader();
                    while (reader.Read())
                    {
                        int _resMatriz = 0;
                        DialogResult result;
                        result = MessageBox.Show("Encontrado imobiliária: " + reader[_resMatriz] + ".\nEstá correto?", "Pesquisa", MessageBoxButtons.YesNo);
                        _resMatriz++;
                        if (result == System.Windows.Forms.DialogResult.Yes)
                        {
                            MessageBox.Show("CarregaImo()");
                            break;
                        }
                        else
                        {
                            continue;
                        } 
                    }