c#System.InvalidCastException在投射字符时发生
我在DB中有一个名为member_id_card_search_key(char[2])的字段,在我的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”的异常,有人知道问题出在哪里吗?对于您提到
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-包含一个字符的数组与字符本身仍然是不同的。