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