我在尝试为组合框设置数据源时遇到问题。我收到错误无法转换为类型 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/