c# - 如何解决 "InvalidCastException"?

标签 c# winforms casting

我在以下代码的运行时收到“InvalidCastException”:

我的 C# WinForm 代码包含一个组合框,它使用以下代码从数据库中填充:

public void PopulateCompetitionFormatDd()
{
     var _competitionFormat            = new CompetitionFormatBL();
     cbCompetitionFormat.DataSource    = _competitionFormat.GetByAllCompetitionFormats();
     cbCompetitionFormat.ValueMember   = "CompetitionFormatId";
     cbCompetitionFormat.DisplayMember = "CompetitionFormatType";
}

ValueMember (CompetitionFormatId) 是一个数字列表,DisplayMember (CompetitionFormatType) 是一个 string 文本。当我在运行时更改此组合框中的项目时,我收到错误“InvalidCastException”。

private void cbCompetitionFormat_SelectedIndexChanged(object sender, EventArgs e)
{
     int competitionFormat = 1;
     competitionFormat = (int)cbCompetitionFormat.SelectedValue;
}

知道我做错了什么以及如何解决吗?

最佳答案

你必须检查它是否是一个整数。

int competitionFormat;
bool result = Int32.TryParse(cbCompetitionFormat.SelectedValue, out competitionFormat);

if (result) { }

关于c# - 如何解决 "InvalidCastException"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14327071/

相关文章:

c# - 如何让Treeview只勾选一个选项

c# - 如何增加工具提示矩形的大小

java - 执行variableOfTypeA+=variableOfTypeB时出现奇怪的类型转换

c - 自由 char*,当在 C 中作为 void 传递时

c# - 批量请求 - SendAs 电子邮件

c# - MongoDB C# 2.0 驱动程序查询字段 A 小于字段 B

c# - .NET Core 2.2 Shared Cookie 导致登录时出现 Bad Request 错误

c# - 如何获取 DataGridView 控件上滚动条的大小?

java - 有没有办法在这段代码中避免@SuppressWarnings?

c# - XPath 选择特定的子元素