在此站点上搜索后,我找不到正确的解决方案,需要帮助。
我正在尝试修改用户的字段(我模拟该用户想要更改其城市)
我有一个这样的表:
+---------+---------------------+
| id_city | name |
+---------+---------------------+
| 1 | India |
| 2 | Irland |
| 3 | France |
+---------+---------------------+
当我启动查询时,我得到的结果是这样的:
+---------+---------------------+
| id_city | name |
+---------+---------------------+
| 3 | France |
| 1 | India |
| 2 | Irland |
+---------+---------------------+
在初始化Windows窗体时,在我的C#代码中,我填充了组合框:
modifyCityUserComboBox.ValueMember = "id_city";
modifyCityUserComboBox.DisplayMember = "name";
modifyCityUserComboBox.DataSource = dataTable;
然后,我尝试将用户所在的城市放入组合框,但是在这一部分,我遇到了问题。当我做:
modifyCityUserComboBox.SelectedIndex = userDto.GetIdCity();
(假设印度是用户的原始城市,并且想要更改它)
我有此错误=
"Invalid argument= The value of '1' is not valid for 'SelectedIndex. Parameter name= SelectedIndex".
我发现组合框以0开始的selectedIndex,如果我不订购城市,我只需要这样做:
modifyCityUserComboBox.SelectedIndex = userDto.GetIdCity() - 1;
有了这个“技巧”,IdCity为0,combobox接受了它,但我不想那样做。我要显示订购的城市。
我已经尝试将True设置为Sort组合框属性,并且没有在mysql查询中对城市进行排序,但是我得到了相同的错误...
有人知道我该怎么做吗?谢谢!
最佳答案
使用modifyCityUserComboBox.SelectedValue=userDto.GetIdCity();