C# 尝试在文本字段中输入Catch、number
我制作了一个winform,用SQL从数据库中提取数据,为了搜索,我有组合框——cboField和cboOperator,我使用的是txtValue。表格是关于汽车的,当我输入(cboField)付款(cboOperator)=(txtValue)福特时,它崩溃了。我该如何加入一些东西来阻止它这样做,或者反过来做,例如汽车品牌=5C# 尝试在文本字段中输入Catch、number,c#,try-catch,C#,Try Catch,我制作了一个winform,用SQL从数据库中提取数据,为了搜索,我有组合框——cboField和cboOperator,我使用的是txtValue。表格是关于汽车的,当我输入(cboField)付款(cboOperator)=(txtValue)福特时,它崩溃了。我该如何加入一些东西来阻止它这样做,或者反过来做,例如汽车品牌=5 private void btnRun_Click(object sender, EventArgs e) { if (cboFiel
private void btnRun_Click(object sender, EventArgs e)
{
if (cboField.SelectedIndex == -1)
{
return;
}
if (cboOperation.SelectedIndex == -1)
{
return;
}
if (txtValue.TextLength == 0)
{
return;
}
string filter;
filter = "[" + cboField.Text + "]";
filter += cboOperation.Text + "'" + txtValue.Text + "'";
tblCarBindingSource.Filter = filter;
这是运行按钮的单击事件
它说在我粘贴的代码的最后一行未处理求值异常我想您是在试图阻止用户在文本字段中放置类似“5”的内容,因为这会导致数据绑定源过滤器抛出一个EvaluateException 很难说清楚你要找的是什么,但如果是这样的话,请尝试以下方法:
try
{
tblCarBindingSource.Filter = filter;
}
catch
{
MessageBox.Show("Please enter valid values in your text fields.");
}
你能写下你的代码片段来澄清你的问题吗?这个问题不是很清楚。代码会更清晰,关于崩溃时发生的异常的详细信息也会更清晰。你自己对你所说的有意义吗?另外,在所提供的代码中,异常是在哪里引发的?您的问题不是很清楚。据我所知,在这种情况下,强烈建议使用“强类型”功能。@zenwalker-如果您阅读最后一行,您将看到它的确切位置是正确的,它现在工作正常,但当我说Payment=Ford时,它表示无法对System.Decimal和System.String执行“=”运算,我正在努力使它能够防止bug好的,如果您不需要以不同的方式处理不同的异常,那么只需删除特定的异常类型。我编辑了代码以捕获所有异常。请注意,您可能希望以不同的方式处理不同的异常…请记住这一点。这就是为什么我把它放进去,这是一个很好的练习。