当我通过使用断点来运行程序时,它执行正常,但是当我在没有断点的情况下运行它时,它会给出运行时异常

时间:2011-03-25 08:40:21

标签: .net ado.net entity-framework-4 oledb visual-studio-debugging

我有一个WPF应用程序,我正在使用Microsoft Jet Oledb驱动程序读取Excel文件。在应用必要的类型转换后,总共有三个excel文件被读取并插入到数据库中。

当我设置断点并逐步调试时,我没有例外,数据被正确插入数据库。

但是当我在没有断点的情况下执行它并且不进行调试时,它会给我以下运行时错误:

  

“输入字符串不正确   格式“

请帮帮我。为什么会这样?

更新:

  

Stack Trace是:at   System.Number.ParseDouble(字符串   value,NumberStyles选项,   NumberFormatInfo numfmt)at   System.String.System.IConvertible.ToDouble(的IFormatProvider   提供者)   System.Convert.ToDouble(对象值)   在   Expedia.MainWindow.InsertCallProfile(数据表   dt)in   d:\ Expedia的\ Expedia的\ Expedia的\ MainWindow.xaml.cs:行   90点   Expedia.MainWindow.Button_Click(对象   发件人,RoutedEventArgs e)in   d:\ Expedia的\ Expedia的\ Expedia的\ MainWindow.xaml.cs:行   44

我知道存在类型转换问题,但在设置断点和调试时不会出现这种情况。

我正在使用以下内容来转换数据类型: -

public static Nullable<T> ToNullable<T>(this object o) where T : struct
    {
        Nullable<T> result = new Nullable<T>();
        try
        {
            if (!string.IsNullOrEmpty(o.ToString()))
            {
                TypeConverter conv = TypeDescriptor.GetConverter(typeof(T));
                result = (T)conv.ConvertFrom(o);
            }
        }
        catch
        {
        }
        return result;
    } 

1 个答案:

答案 0 :(得分:2)

如果您知道如何以这种方式调试.NET崩溃,那就不奇怪了,

http://blogs.msdn.com/b/tess/archive/2009/03/20/debugging-a-net-crash-with-rules-in-debug-diag.aspx

每次崩溃都可以解释。