1

パフォーマンスが十分にテストされたコードを作成しました。

コードでは、コンマで区切られた文字列を分割して、DataTable行のItemArrayに割り当てています。

DataRow dr = dt.NewRow();
var itemArray = processedUliValue.Split(',');
dr.ItemArray = itemArray;
dt.Rows.Add(dr);

コードの後半で、選択した列名に基づいてこれらのitemArray値を整数に変換しています

いずれかの列が空の場合、例外が発生します。

だから私はitemArrayを割り当てるときに空の値をnullに設定することを探しています、コンマ区切りの文字列でDBNull.Valueを使用しようとしましたが、nullを取りませんでした、nullも試しましたが、それも機能しませんでした。

このコンマ区切りの文字列を使用してnullをItemArrayに割り当てる方法はありますか?

4

2 に答える 2

4

保存しようとしている列でDbNull.Valuenullが許可されていないようです。これは私のために働きます:

        var dt = new DataTable
        {
            Columns =
                {
                    new DataColumn("Id", typeof(int)),
                    new DataColumn("FirstName", typeof(string)) { AllowDBNull = true },
                    new DataColumn("LastName", typeof(string)) { AllowDBNull = true },
                }
        };

        var row = dt.NewRow();

        row.ItemArray = "1,,Jones".Split(',').Select(s => string.IsNullOrEmpty(s) ? (object)DBNull.Value : (object)s).ToArray();

        dt.Rows.Add(row);
于 2012-09-18T18:50:14.370 に答える
0

intに変換する前に、列の値が空かどうかを確認してみませんか?そうすればもっと簡単なようです。

于 2012-09-18T18:50:33.233 に答える