[ad_1]
Long 変数 = Convert.ToInt64(行[“SHP_ID”])
値が「33300109…….」の場合
例外を下回っています。
データ: {System.Collections.ListDictionaryInternal}
HResult: -2146233066
ヘルプリンク: null
内部例外: null
メッセージ: 「値が Int64 に対して大きすぎるか小さすぎます。」
出典:「mscorlib」
StackTrace: “System.Number.ParseInt64(String 値、NumberStyles オプション、NumberFormatInfo numfmt) で\r\n System.Int64.Parse(String s) で”
TargetSite: {Int64 ParseInt64(System.String, System.Globalization.NumberStyles, System.Globalization.NumberFormatInfo)}
誰でも提案できますか
私が試したこと:
私はこれを試しましたが、まだ同じ例外があります。
Int64.Parse(行[“SHP_ID”].ToString())
解決策 1
見る Int64 構造体 (システム) | マイクロソフト ラーン[^] 上限と下限用。 あなたは使用することができます 10 進構造体 (システム) | マイクロソフト ラーン[^] タイプですが、この値で何をしようとしているかによって異なります。
解決策 2
エラーメッセージは、何が間違っているかを正確に示しています。
文字列「33300109396272646795」を INT64 数値に変換しようとしています。
値を比較すると
33300109396272646795
INT64 の最大値まで
9223372036854775807
ご覧のとおり、「33300109396272646795」
INT64 に変換できません。
大きすぎる!
見る Int64.MaxValue フィールド (システム) | マイクロソフト ラーン[^]
C# の数値型に関する次のドキュメントを読むこともお勧めします。
整数型 – C# リファレンス | マイクロソフト ラーン[^]
解決策は、ここで説明されているように、別の変換メソッド「Convert.ToUInt64」を使用することです。
Convert.ToUInt64 メソッド (システム) | マイクロソフト ラーン[^]
UInt64 は、0 から 18,446,744,073,709,551,615 までの値を保持できます。
[ad_2]
コメント