C# - 无法将类型“字符串”隐式转换为“int”(在下拉列表中设置值)
本文关键字:字符串 int 下拉列表 设置 类型 转换 | 更新日期: 2023-09-27 18:31:22
我正在尝试从代码隐藏中设置DropDownList的选定值。以下是 DropDownList 的 HTML:
<select name="ctl00$MainContent$area" id="MainContent_area">
<option value="1">Test area 1</option>
<option value="2">Test area 2</option>
</select>
我可以使用此代码将回发值存储到对象中来很好地更新数据库:
Area_Urn = int.Parse(area.SelectedValue)
但是,当我尝试使用以下代码将值设置回存储在数据库中的值时:
area.SelectedValue = c.Area_Urn
尽管c.Area_Urn
是一个int
,但我得到一个错误说:
无法将类型"字符串"隐式转换为"int"
我已经尝试了Int.Parse()
和ToString()
(不确定为什么这会起作用,但我出于绝望而尝试过),但不幸的是,我无法弄清楚导致此问题的原因。
area.SelectedValue = c.Area_Urn.ToString()
那应该可以做到
您正在尝试将int
值分配给string
类型。所以你需要将 int 转换为字符串。所以试试这个
area.SelectedValue = c.Area_Urn.ToString()
或
area.SelectedValue = Convert.ToString(c.Area_Urn);
错误消息很奇怪,通常我会期望相反:
无法将类型"int"隐式转换为"字符串"
但是,由于SelectedValue
是一个字符串,而c.Area_Urn
是一个不起作用的int
。
area.SelectedValue = c.Area_Urn.ToString(); // now you assign a string to a string property