-1

こんにちは、私はmvc4に取り組んでいます。ここでいくつかの問題があります。フォームコレクションから値を取得すると、「String []」のような配列に格納している値を取得しています。それらの値をデータベーステーブルに移動しますが、 「入力文字列が正しい形式ではありませんでした」という問題が常に1つだけ発生します

ここに私のコードは続きます:'

string[] BundleItemID = form.GetValues("txtbundleid");

for (int i = 0; i < skuid.Length; i++)
{
    ProductBundleItem productbundleitem = new ProductBundleItem();
    if (!string.IsNullOrEmpty(BundleItemID[i]))
    {
        productbundleitem.BundleItemId = Convert.ToInt64(BundleItemID[i]);
    }
}

「Convert.ToInt64(BundleItemID[i])」から「BundleItemId」に値を移動しようとすると、「入力文字列が正しい形式ではありませんでした」というエラーが表示されます事前に感謝します

4

2 に答える 2

1

エラーを見つけることができるように、デバッグメッセージボックスを追加しました。

   string[] BundleItemID = form.GetValues("txtbundleid");

    for (int i = 0; i < skuid.Length; i++)
    {
        ProductBundleItem productbundleitem = new ProductBundleItem();
        if (!string.IsNullOrEmpty(BundleItemID[i]))
        {
            long val = 0;
            if (!long.TryParse(BundleItemID[i], out val))
            {
                MessageBox.Show(string.Format("{0} is not a valid Int64 value", BundleItemID[i]));
                break;
            }
            productbundleitem.BundleItemId = val;
        }
    }
于 2012-12-28T07:58:13.813 に答える
1

次のように、 long.TryParse を使用して、変換が可能かどうかを確認する必要があります。

long val;
if (long.TryParse(BundleItemID[i], out val)
    productbundleitem.BundleItemId = val;
else
    // handle situation when BundleItemID[i] is not a number somehow
于 2012-12-28T07:52:58.533 に答える