不能将整型转换为字符串

本文关键字:字符串 转换 整型 不能 | 更新日期: 2023-09-27 18:16:29

我有这样的代码:

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

和一个错误,我不能从int转换到字符串的底线。我怎样才能使它成为可能?

不能将整型转换为字符串

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

Try this:

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

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

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

MSDN: listtitemcollection . findbyvalue () method

public ListItem FindByValue(
    string value
)

看起来像FindByValue接受"String"。用CityId.ToString(CutureInfo.InvariantCulture)代替CityId

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

调用ToString()方法

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

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

使用ConvertToString ()

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

此外,检查FindByValue方法是否返回null可能是明智的,因为当您尝试设置Selected = true

时,这也会导致null引用异常。