在此站点上搜索后,我找不到正确的解决方案,需要帮助。

我正在尝试修改用户的字段(我模拟该用户想要更改其城市)

我有一个这样的表:

+---------+---------------------+
| 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();

09-30 16:03
查看更多