c# - 无法转换为类型 System.IConvertible

标签 c# combobox converters

我在尝试为组合框设置数据源时遇到问题。我收到错误无法转换为类型 System.IConvertible。它说这是因为我有一个 System.Convert.ToInt32(object value) 但我正在将该对象转换为一个 int。我似乎无法弄清楚如何解决这个问题。

当我在另一个组合框中选择一个项目时,数据源必须触发。 这是 SelectIndex 事件,我在其中尝试转换对象并尝试填充组合框。

private void cbBookedSeatMovTime_SelectedIndexChanged(object sender, EventArgs e)
    {
        ServiceReferenceMovieRunTime.MovieRunTimeServiceClient movRunService = new ServiceReferenceMovieRunTime.MovieRunTimeServiceClient();
        ServiceReferenceSeats.SeatsServiceClient seatService = new ServiceReferenceSeats.SeatsServiceClient();

        string _selectedMovName = Convert.ToString(cbBookedSeatMovInfo.SelectedValue);
        string _selectedMovDate = Convert.ToString(cbBookedSeatMovDate.SelectedValue);
        string _selectedMovTime = Convert.ToString(cbBookedSeatMovTime.SelectedValue);

        int _runTimeId = Convert.ToInt32(movRunService.GetRunTimeOnNameDateAndTime(_selectedMovName, _selectedMovDate, _selectedMovTime));


        cbRow1.DataSource = seatService.GetRowsOnRunTime(_runTimeId);
        cbRow1.ValueMember = "id";
        cbRow1.DisplayMember = "rowId";

    }

获取seatService.GetRowsOnRunTime();我必须输入一个整数。我从其他三个组合框获取的那个 int 并放入服务 movieRunService.GetRunTimeOnNameDateAndTime() 中,这需要三个字符串 cbBookedSeatMovInfo.SelectedValue、cbBookedSeatMovDate.SelectedValue 和 cbBookedSeatMovTime.SelectedValue。

我不明白为什么我不能将对象转换为 int32?你们能帮帮我吗?

谢谢!

最佳答案

这里的问题是您正在尝试将 MovieRunTime 列表转换为整数。

您必须获取列表中的第一个元素,然后获取您需要的整数值。

    string _selectedMovName = Convert.ToString(cbBookedSeatMovInfo.SelectedValue);
    string _selectedMovDate = Convert.ToString(cbBookedSeatMovDate.SelectedValue);
    string _selectedMovTime = Convert.ToString(cbBookedSeatMovTime.SelectedValue);

    //declare list of MovieRunTime and store your results 

    list<MovieRunTime> myList= movRunService.GetRunTimeOnNameDateAndTime(_selectedMovName, _selectedMovDate, _selectedMovTime);

   //check if your list is not null and if has items

   if (myLista != null && myLista.count > 0) {
   {

    MovieRunTime firstElement = myList[0];

    int _runTimeId = firstElement.IdValue;

    cbRow1.DataSource = seatService.GetRowsOnRunTime(_runTimeId);
    cbRow1.ValueMember = "id";
    cbRow1.DisplayMember = "rowId";

   }

关于c# - 无法转换为类型 System.IConvertible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27172584/

相关文章:

c# - 结构和 IDisposable

c# - 如何验证 TCP 数据包是否已在 C# 中收到 ACK?

选择的 Html 选择选项不起作用

java - Selenium Webdriver - 如何从非典型下拉列表中选择选项

mysql - 组合框未填充 mysql 数据

javascript - 如何在浏览器中将 m3u8 URL 转换为 mp4 可下载文件?

c# - 单元测试何时加载依赖程序集?

java - 复杂物体的推土机映射

C++将整数 vector 转换为整数

c# - 分部类中的表单控件属性