2011-12-03 188 views
0

我有這樣的代碼:不能將int轉換成字符串

int CityID= ((User)Session["LoggedInUser"]).CityID; 
    //When I debugg I get CityID = 7 here 

ddlCity.Items.FindByValue(CityID).Selected = true; 

而且,我不能從int轉換爲字符串在底線上的錯誤。我怎樣才能使它成爲可能?

+0

從你的簡短描述中很難理解你到底想要做什麼,以及這些對象究竟是什麼。請嘗試更好地解釋您的問題。 – Dror

+0

不要用大寫字母命名變量,這被其他程序員隱式地理解爲類名,並且確實是SO的着色算法。請注意用戶和會話是怎樣的類,並且爲你的CityID設定一個更好的名稱將是cityId或cityID – Gleno

+0

更簡單:'ddlCity.SelectedValue = CityID.ToString();' – Magnus

回答

1

FindByValue需要一個字符串值,因此您必須將CityID轉換爲字符串。

試試這個:

ddlCity.Items.FindByValue(CityID.ToString()).Selected = true 
+0

謝謝,我一直坐在這裏,這是這個明天。 Thankyou – user1007103

1

參數類型應該是string,不int,所以只需使用內置的ToString():

ddlCity.Items.FindByValue(CityID.ToString()).Selected = true; 

MSDN:ListItemCollection.FindByValue()方法

public ListItem FindByValue(
    string value 
) 
0

看起來像FindByValue需要「字符串」。使用CityId.ToString(CutureInfo.InvariantCulture)而不是CityId

0

您需要將整數轉換爲字符串。這可以通過兩種方式之一

進行調用ToString()方法

ddlCity.Items.FindByValue(CityID.ToString()).Selected = true; 

這可能引發一個空引用異常,如果CityID爲null。

使用ConvertToString()

ddlCity.Items.FindByValue(Convert.ToString(CityID)).Selected = true; 

而且它可能是明智的檢查FindByValue方法不返回null,因爲這也將導致空引用異常,當您試圖設置選定=真正

+0

在這種情況下'(字符串)CityID'可能引發無效的轉換異常? – sll