0

MicrosoftJetOledbドライバーを使用してExcelファイルを読み取っているWPFアプリケーションがあります。必要な型変換を適用した後、合計3つのExcelファイルが読み取られてデータベースに挿入されます。

ブレークポイントを設定して段階的にデバッグすると、例外が発生せず、データがDBに正しく挿入されます。

しかし、ブレークポイントなしで実行してデバッグしないと、次の実行時エラーが発生します。

"入力文字列は、正しい形式ではありませんでした"

私を助けてください。なぜこうなった ?

アップデート:

スタックトレースは次のとおりです。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)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 :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;
    } 
4

1 に答える 1

2

このように .NET クラッシュをデバッグする方法を知っていれば、何もおかしなことではありませんが、

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

すべてのクラッシュは説明できます。

于 2011-03-25T10:36:25.707 に答える