2012-03-20 34 views
-5

我試圖實現一個功能,如果我點擊一個按鈕,它會向模塊(基本上是一個新頁面)添加一個新單元,但在下面出現錯誤行:ASP.Net - 輸入字符串格式不正確

UnitID = Request["UnitID"] != null ? Convert.ToInt32(Request["UnitID"]) : 0; 

而且堆棧跟蹤是

[FormatException: Input string was not in a correct format.] 
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +7470855 
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119 
System.Convert.ToInt32(String value) +63 
Data_Project.Page_Load(Object sender, EventArgs e) in  
C:\Projects\Projects.aspx.cs:69 
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, 
Object t, EventArgs e) +14 
    System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35 
System.Web.UI.Control.OnLoad(EventArgs e) +99 
System.Web.UI.Control.LoadRecursive() +50 
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627 

能否請你告訴我的錯誤是什麼?

很多先進的感謝。

+0

您是否檢查過請求[「UnitID」]的內容?也許它不是一個數字。 – remio 2012-03-20 11:38:17

+11

不要把這看成是輕微的,但如果你沒有學習如何閱讀這樣的異常消息,那麼你的職業生涯就是漫長而令人沮喪的。 – Marc 2012-03-20 11:38:30

回答

2

那是因爲你有Request["UnitID"]東西是不是數字

1

錯誤「輸入字符串不正確的格式」是指請求[「單元ID」]不能轉換爲整數。

試試這個:

UnitID = !string.IsNullOrEmpty(Request["UnitID"]) ? Convert.ToInt32(Request["UnitID"]) : 0; 

或者這樣:

if(!int.TryParse(Request["UnitID"]+"", out UnitID) 
{ 
UnitID = 0; 
} 
2

也許你會想嘗試

int UnitID = 0; 
if(string.IsNullOrEmpty(Request["UnitID"])) 
{ 
    UnitID = 0; 
} 
else 
{ 
    if(!Int32.TryParse(Request["UnitID"], out UnitID)) 
    { 
     UnitID = 0; 
    } 
} 

希望這有助於。