C# 指定的强制转换无效-DataGridView
我正在构建一个应用程序,我正在使用一个.dll,它需要将参数“Level”设置为gold、silver或brown。级别是.dll中的公共枚举级别 要选择黄金、白银或青铜,我希望从dataGridView中读取它,以避免每次我想要更改它时编辑源代码,但是我一直获得未处理异常,指定的强制转换无效 这是我的密码C# 指定的强制转换无效-DataGridView,c#,.net,datagridview,C#,.net,Datagridview,我正在构建一个应用程序,我正在使用一个.dll,它需要将参数“Level”设置为gold、silver或brown。级别是.dll中的公共枚举级别 要选择黄金、白银或青铜,我希望从dataGridView中读取它,以避免每次我想要更改它时编辑源代码,但是我一直获得未处理异常,指定的强制转换无效 这是我的密码 var testLevel = dataGridView1.Rows[0].Cells[2].Value == null ? Level.All : (Level)(dataGridView
var testLevel = dataGridView1.Rows[0].Cells[2].Value == null ? Level.All : (Level)(dataGridView1.Rows[0].Cells[2]).Value; // exception occurs on this line
var searchParameters = new PlayerSearchParameters
{
Level = testLevel,
};
那么,我怎样才能在没有问题的情况下正确读取DVG中的电平呢
谢谢
编辑:我用组合框测试过它,效果很好,但我真的希望它通过DGV工作 您需要使用Enum.Parse将字符串解析为所需的Enum
Level levelValue = (Level) Enum.Parse(typeof(Level), (dataGridView1.Rows[0].Cells[2]).Value);
还可以使用检查字符串.IsNullOrEmpty而不是dataGridView1.Rows[0]。单元格[2]。值==null
例如,您可以使用:
Level levelValue;
var value = dataGridView1.Rows[0].Cells[2]).Value;
if (Enum.IsDefined(typeof(Level), value))
levelValue = (Level) Enum.Parse(typeof(Level), value)
else
levelValue = Level.All
您需要使用Enum.Parse将字符串解析为所需的枚举
Level levelValue = (Level) Enum.Parse(typeof(Level), (dataGridView1.Rows[0].Cells[2]).Value);
还可以使用检查字符串.IsNullOrEmpty而不是dataGridView1.Rows[0]。单元格[2]。值==null
例如,您可以使用:
Level levelValue;
var value = dataGridView1.Rows[0].Cells[2]).Value;
if (Enum.IsDefined(typeof(Level), value))
levelValue = (Level) Enum.Parse(typeof(Level), value)
else
levelValue = Level.All
您需要使用Enum.Parse将字符串解析为所需的枚举
Level levelValue = (Level) Enum.Parse(typeof(Level), (dataGridView1.Rows[0].Cells[2]).Value);
还可以使用检查字符串.IsNullOrEmpty而不是dataGridView1.Rows[0]。单元格[2]。值==null
例如,您可以使用:
Level levelValue;
var value = dataGridView1.Rows[0].Cells[2]).Value;
if (Enum.IsDefined(typeof(Level), value))
levelValue = (Level) Enum.Parse(typeof(Level), value)
else
levelValue = Level.All
您需要使用Enum.Parse将字符串解析为所需的枚举
Level levelValue = (Level) Enum.Parse(typeof(Level), (dataGridView1.Rows[0].Cells[2]).Value);
还可以使用检查字符串.IsNullOrEmpty而不是dataGridView1.Rows[0]。单元格[2]。值==null
例如,您可以使用:
Level levelValue;
var value = dataGridView1.Rows[0].Cells[2]).Value;
if (Enum.IsDefined(typeof(Level), value))
levelValue = (Level) Enum.Parse(typeof(Level), value)
else
levelValue = Level.All
dataGridView1.Rows[0]。Cells[2]。value==null
?没有人知道这些单元格中隐藏了什么:)检入调试器有什么!dataGridView1.Rows[0]。Cells[2]。value==null
?没有人知道这些单元格中隐藏了什么:)检入调试器有什么!dataGridView1.Rows[0]。Cells[2]。value==null
?没有人知道这些单元格中隐藏了什么:)检入调试器有什么!dataGridView1.Rows[0]。Cells[2]。value==null
?没有人知道这些单元格中隐藏了什么:)检入调试器有什么!