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

发布于 2024-10-26 02:23:40 字数 1298 浏览 1 评论 0 原文

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

当我设置断点并逐步调试它时,我没有遇到异常,并且数据已正确插入到数据库中。

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

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

请帮助我。为什么会发生这种情况?

更新:

堆栈跟踪位于: System.Number.ParseDouble(字符串 值、NumberStyles 选项、 NumberFormatInfo numfmt) at System.String.System.IConvertible.ToDouble(IFormatProvider 提供商)在 System.Convert.ToDouble(对象值) 在 Expedia.MainWindow.InsertCallProfile(数据表 dt) 在 D:\expedia\Expedia\Expedia\MainWindow.xaml.cs:line 90 于 Expedia.MainWindow.Button_Click(对象 发送者、RoatedEventArgs e) 中 D:\expedia\Expedia\Expedia\MainWindow.xaml.cs:line 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;
    } 

I have a WPF application in which I am reading an Excel file using Microsoft Jet Oledb driver. There are a total of three excel files being read and inserted into the database after applying necessary type conversions.

When I set breakpoints and debug it step by step, I get not exceptions and data is correctly inserted into the DB.

But when I execute it without breakpoints and do not debug, then it gives me the following run time error:

"Input string was not in a correct
format"

Please help me. Why is this happening ?

UPDATE:

Stack Trace is: at
System.Number.ParseDouble(String
value, NumberStyles options,
NumberFormatInfo numfmt) at
System.String.System.IConvertible.ToDouble(IFormatProvider
provider) at
System.Convert.ToDouble(Object value)
at
Expedia.MainWindow.InsertCallProfile(DataTable
dt) in
D:\expedia\Expedia\Expedia\MainWindow.xaml.cs:line
90 at
Expedia.MainWindow.Button_Click(Object
sender, RoutedEventArgs e) in
D:\expedia\Expedia\Expedia\MainWindow.xaml.cs:line
44

I knew that there is a Type Conversion problem, but it does not occurr when I set breakpoints and debug.

I am using following for converting data types:-

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;
    } 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦冥 2024-11-02 02:23:40

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

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

每一次崩溃都可以得到解释。

It is not something strange if you know how to debug .NET crash in this way,

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

Every crash can be explained.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文