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