2

以下のクエリを実行しています:-

var Values = from data in DtSet.Tables["tblCosts"].AsEnumerable()
            group data by new
            {
                InvNo = data.Field<double>("InvoiceNo"),
                AccRef = data.Field<double>("SiteRefNum"),
            }
            into g
            select new
            {
                Code = "1",
                InvType = "I",
                Account = g.Key.AccRef,
                InvNo = g.Key.InvNo,
                ChargeTotal = g.Sum(d => d.field<double>("Charge")
            };

データが (Excel から) データテーブルにインポートされる方法により、AccRef のデータ型がdoubleである場合と である場合がありstringます。インポートする前にユーザーが Excel でソース データを変更しないようにしたいので、実行時にこれを克服する方法はありますか。

4

1 に答える 1

3

オブジェクトで使用できるConvert.ToDoubleので、doubleとstringで機能するはずです。

var Values = from data in DtSet.Tables["tblCosts"].AsEnumerable()
             group data by new
             {
                 InvNo = data.Field<double>("InvoiceNo"),
                 AccRef = Convert.ToDouble(data["SiteRefNum"]),
             }
             into g
             select new
             {
                 Code = "1",
                 InvType = "I",
                 Account = g.Key.AccRef,
                 InvNo = g.Key.InvNo,
                 ChargeTotal = g.Sum(d => d.Field<double>("Charge"))
             };

もちろん、それSiteRefNumは実際にに変換できる場合にのみ機能しdoubleます。

于 2013-02-04T15:07:45.847 に答える