2014-01-15 326 views
0

我完成了完美的編碼註冊頁面,登錄和現在UpdateCustomer頁面有錯誤 - 背景信息:我使用Microsoft Access作爲數據源錯誤:無法投入'System.Int32'類型的對象鍵入'System.String'

LabelState.Text = (string)Session["sState"]; 
    LabelPostalCode.Text = (string)Session["sPostalCode"]; 
    LabelContactNumber.Text = (string)Session["sContactNumber"]; 
    LabelEmail.Text = (string)Session["sEmail"]; 
    LabelPassword.Text = (string)Session["sPassword"]; 

這裏的一切都很好,除了LabelContactNumber.Text = (string)Session["sContactNumber"]

我相信這是因爲只有Access中的ContactNumber被設置爲Int其餘的是Text,所以當我使用(string)時沒有錯誤。

回答

0
LabelContactNumber.Text = (Session["sContactNumber"] != null) 
           ? Session["sContactNumber"].ToString() 
           : string.Empty //or whatever default value your want; 
0

問題:由於您將整數類型分配到字符串中,因此它失敗。 這裏您需要使用顯式轉換將Integer類型轉換爲String類型。

解決方案:,如果你想請檢查是否聯繫人號碼可以被解析爲int或不分配成文本框使用TryParse方法之前

int contact; 
if(int.TryParse(Session["sContactNumber"],out contact)) 
    LabelContactNumber.Text = contact.ToString(); 
else 
    LabelContactNumber.Text = "Invalid Contact!"; 
0
int contactNumber = -1; 
if(int.TryParse(Session[ "sContactNumber" ], out contactNumber) == false) 
{ 
    LastContactNumber = "N/A"; 
} 
else 
{ 
    LastContactNumber = contactNumber.ToString(); 
} 
相關問題