2012-08-28 7 views
0

웹 응용 프로그램에서 보고서를 실행하려고하면이 오류가 발생합니다.웹 응용 프로그램의 오류 -

'/ 수익'응용 프로그램의 서버 오류입니다.

입력 문자열의 형식이 올바르지 않습니다.

설명 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 코드에서 시작된 위치에 대한 자세한 정보는 스택 추적을 검토하십시오.

예외 정보 : 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) 
       }; 

어떤 생각이 올바른 형식 '새로운 선택'하지 WAE에?

당신이

답변

1

아마, 예외는이 성명에서 double.Parse에서 발생합니다 감사합니다

Change = Math.Round(double.Parse(g.FirstOrDefault()["LinaValue"].ToString()) - double.Parse(g.LastOrDefault()["LinaValue"].ToString()), 2) 

해당 쿼리가 평가 될 수 있도록, LINQ 문의 끝에 .ToList()를 추가 (& 예외가 발생했습니다). 거기에서 형식을 디버깅 할 수 있습니다.