2015-07-04 30 views
-1

我送我的poolid在hdnfield當我將它給我的錯誤未處理。 poolid是int32數據類型System.FormatException是由用戶代碼

if (ddlStaticPoolName.Visible) 
    { 
     objUserEntity.POOLNAME = Convert.ToString(ddlStaticPoolName.SelectedItem.Text); 
     objUserEntity.POOlID = Convert.ToInt32(ddlStaticPoolName.SelectedValue); 
    } 
    else if (lblDynamicPoolName.Visible) 
    { 
     objUserEntity.POOLNAME = Convert.ToString(lblDynamicPoolName.Text); 
     objUserEntity.POOlID =Convert.ToInt32(hdnDynamicPoolID.Value); 
    } 
    else 
    { 
     objUserEntity.POOLNAME = ""; 
     objUserEntity.POOlID = 0; 
    } 
+1

你可以顯示你想要轉換爲int32的字符串'ddlStaticPoolName.SelectedValue'的例子嗎? –

+1

哪一行給出錯誤,在if或else-if中,請指出 –

+0

是SelectedValue空字符串? –

回答

0

如果字符串包含數字字符但它不是整數(如:雙,十進制)。

objUserEntity.POOlID = Convert.ToInt32(Convert.ToDouble(ddlStaticPoolName.SelectedValue)); 

如果字符串包含雙號它不能直接轉化爲int。如果這不解決你的問題,你必須舉一個ddlStaticPoolName.SelectedValue的例子。

如果字符串包含非數字字符。然後你應該使用TryParse。

int num; 
    Int32.TryParse(ddlStaticPoolName.SelectedValue, out num); 
    objUserEntity.POOlID = num; 

如果字符串包含無效的數字。 TryParse會將num的值設置爲0.否則將值設置爲從字符串轉換的值。

如果你嘗試這種解決方案,其中一個必須解決您的問題。但嘗試第一個解決方案,然後去到下一個解決方案

+0

感謝M.kazem Akhgary幫助第二種解決方案幫助了我很多。 –

+0

歡迎您。如果回答您的問題,您可以接受此答案。 –

相關問題