Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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#System.InvalidCastException在投射字符时发生_C#_Winforms - Fatal编程技术网

c#System.InvalidCastException在投射字符时发生

c#System.InvalidCastException在投射字符时发生,c#,winforms,C#,Winforms,我在DB中有一个名为member_id_card_search_key(char[2])的字段,在我的Winforms应用程序中,有一行代码如下: person.member_id_card_search_key = (char)membersData.Tables[0].Rows[i]["member_id_card_search_key"]; 当我运行winform应用程序时,出现了一个名为“System.InvalidCastException”的异常,有人知道问题出在哪里吗?对于您提到

我在DB中有一个名为member_id_card_search_key(char[2])的字段,在我的
Winforms
应用程序中,有一行代码如下:

person.member_id_card_search_key = (char)membersData.Tables[0].Rows[i]["member_id_card_search_key"];

当我运行winform应用程序时,出现了一个名为“System.InvalidCastException”的异常,有人知道问题出在哪里吗?

对于您提到的,列的数据类型是
char[2]
。您正试图将其转换为一个字符。尝试将其强制转换为
字符串

正如您所提到的,该列的数据类型是
char[2]
。您正试图将其转换为一个字符。尝试将其强制转换为
字符串

您的代码失败,因为返回类型将是
char[2]
,并且您正在隐式转换为char,这不是有效的转换。试试这个:

person.member_id_card_search_key = (char[])membersData.Tables[0].Rows[i]["member_id_card_search_key"]; 
如果
member\u id\u card\u search\u key
接受字符数组,或者您可以尝试

 person.member_id_card_search_key = (char[])membersData.Tables[0].Rows[i]["member_id_card_search_key"][0];

要从结果数组中获取第一个字符,代码将失败,因为返回类型将是
char[2]
,并且您正在隐式转换为char,这是无效的转换。试试这个:

person.member_id_card_search_key = (char[])membersData.Tables[0].Rows[i]["member_id_card_search_key"]; 
如果
member\u id\u card\u search\u key
接受字符数组,或者您可以尝试

 person.member_id_card_search_key = (char[])membersData.Tables[0].Rows[i]["member_id_card_search_key"][0];

要从结果数组中提取第一个字符

能否更清楚地了解将字符数组转换为字符所要实现的目标?能否更清楚地了解将字符数组转换为字符所要实现的目标?我有另一列(char,1)person.is_representative=(char)membersData.Tables[0]。行[i][“is_representative”];,例外情况是same@hkguile-包含一个字符的数组与字符本身仍然是不同的。我有另一列(char,1)person.is_representative=(char)membersData.Tables[0]。行[i][“is_representative”],例外是same@hkguile-包含一个字符的数组与字符本身仍然是不同的。