【问题标题】:c# Handling exception for a wrong SQL queryc# 处理错误 SQL 查询的异常
【发布时间】:2016-01-26 21:25:40
【问题描述】:

我已经看到了关于这个主题的类似问题,之前有人问过这些问题,但找不到上述问题的解决方案。我在 C# 中为 SAP B1 编写了一个附加组件。用户必须在 UDT 中输入一些数据库列名。然后我的函数运行查询并获取数据。但是如果用户在表中输入了错误的列名,我应该有一个适当的错误处理来捕捉这个错误并防止加载项崩溃。我的代码如下。

try
{
 sqlString = "select " + databaseFieldName[increase] + " from OITM where ItemCode= '" + itemCode + "'";
 mRsitemCode.DoQuery(sqlString);
}
catch (System.Runtime.InteropServices.COMException ex)
{
 SBO_Application.MessageBox(ex.ToString(), 1, "Ok");
}
catch (Exception b)
{
  //string error;
  SBO_Application.MessageBox(b.ToString(), 1, "Ok");
}

但它没有遇到我的任何 catch 块。错误如下。

类型的异常(第一次机会) 'System.Runtime.InteropServices.COMException' 发生在 Item_Variation.dll。

附加信息:1)。 [微软] [SQL Server Native Client 10.0] [SQL Server] 列名“WhsCode”无效。

2)。 [Microsoft] [SQL Server Native Client 10.0] [SQL Server] 语句 (s) 无法准备。

如果有可用于此异常的处理程序,程序可能会继续 安全运行。

我做错了什么?任何帮助将不胜感激!

【问题讨论】:

  • 您确定: 1. 异常实际上发生在显示的行中,而不是其他地方? 2.异常处理程序中的行实际上并没有被执行?也许只是没有显示消息框?你能在调试器上停下来吗?
  • @KubaWyrostek :我尝试调试并在mRsitemCode.DoQuery(sqlString); 行停止,并且弹出错误消息(崩溃)。它没有遇到 catch 块。
  • 您是否已将设置配置为在异常情况下中断。我不确定这是问题的原因,但可能是什么
  • @ChrisBint 不知道。 VS2010我该怎么做?原谅我只是个实习生:(
  • 来自调试/异常菜单。您可以简单地选择它以不中断任何异常,但同样,不确定这是否是您的问题。可能值得一试。

标签: c# sql-server


【解决方案1】:

您的 Visual Studio 已配置为中断异常。如果您使用 Debug/Exceptions 菜单来选择您想要中断的错误,而不是让您的代码继续,您可以这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-27
    • 2014-01-08
    • 2017-10-11
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多