无法将int转换为字符串

时间:2011-12-03 19:31:23

标签: c#

我有这段代码:

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

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

在底线我无法从int转换为字符串的错误。我怎样才能使它成为可能?

4 个答案:

答案 0 :(得分:1)

FindByValue需要一个字符串值,因此您必须将CityID转换为字符串。

试试这个:

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

答案 1 :(得分:1)

参数类型应该是string,而不是int,所以只需使用内置的ToString():

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

MSDN:ListItemCollection.FindByValue()方法

public ListItem FindByValue(
    string value
)

答案 2 :(得分:0)

看起来FindByValue采用“String”。使用CityId.ToString(CutureInfo.InvariantCulture)代替CityId

答案 3 :(得分:0)

您需要将整数转换为字符串。这可以通过两种方式之一完成

调用ToString()方法

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

如果CityID为null,则可能引发空引用异常。

使用ConvertToString()

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

同样明智的做法是检查FindByValue方法是否返回null,因为当您尝试设置Selected = true时,这也会导致空引用异常