Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 指定的强制转换无效-DataGridView_C#_.net_Datagridview - Fatal编程技术网

C# 指定的强制转换无效-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

我正在构建一个应用程序,我正在使用一个.dll,它需要将参数“Level”设置为gold、silver或brown。级别是.dll中的公共枚举级别

要选择黄金、白银或青铜,我希望从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
?没有人知道这些单元格中隐藏了什么:)检入调试器有什么!