Web アプリケーションでレポートを実行しようとすると、次のエラーが発生します。
「/Revenue」アプリケーションでサーバー エラーが発生しました。
入力文字列は、正しい形式ではありませんでした。
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.FormatException: 入力文字列が正しい形式ではありませんでした。
ソース エラー:
Line 219: var ans = from a in analytics.Rows.Cast<DataRow>()
Line 220: group a by a["LineTitle"] into g
Line 221: select new
Line 222: {
Line 223: Name = g.Key.ToString(),
[FormatException: Input string was not in a correct format.]
System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt) +10691639
System.Double.Parse(String s) +23
Main_Report.<CountryAnalytics>b__2e(IGrouping`2 g) in d:\vistaweb\Revenue\MainReport.aspx.cs:221
System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +145
System.Linq.Enumerable.Count(IEnumerable`1 source) +4125469
ASP.mainreport_aspx.__DataBind__control28(Object sender, EventArgs e) in d:\vistaweb\Revenue\MainReport.aspx:303
System.Web.UI.Control.OnDataBinding(EventArgs e) +92
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +85
System.Web.UI.Control.DataBind() +15
System.Web.UI.Control.DataBindChildren() +187
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +94
System.Web.UI.Control.DataBind() +15
System.Web.UI.WebControls.DataList.CreateItem(Int32 itemIndex, ListItemType itemType, Boolean dataBind, Object dataItem) +136
System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource) +484
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) +63
System.Web.UI.WebControls.BaseDataList.DataBind() +54
Main_Report.Page_LoadComplete(Object sender, EventArgs e) in d:\vistaweb\Revenue\MainReport.aspx.cs:118
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
System.Web.UI.Page.OnLoadComplete(EventArgs e) +9631466
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +765
ファイル内のコードは次のようになります。
var ans = from a in analytics.Rows.Cast<DataRow>()
group a by a["LineTitle"] into g
select new
{
Name = g.Key.ToString(),
SalesPersonStats = g.Key.ToString().Contains(SP.FullName),
Value = g.FirstOrDefault()["LinaValue"].ToString(),
Percentage = g.FirstOrDefault()["LinePercent"].ToString(),
Change = Math.Round(double.Parse(g.FirstOrDefault()["LinaValue"].ToString()) - double.Parse(g.LastOrDefault()["LinaValue"].ToString()), 2)
};
入力文字列が「select new」という正しい形式ではないと言われる理由は何ですか?
ありがとうございました