C# Can';在ASP.NET C中转换字符#

C# Can';在ASP.NET C中转换字符#,c#,asp.net,webforms,char,C#,Asp.net,Webforms,Char,我的数据库中有一个“电话”区域,数据类型为char(11) 我需要在ASP.NET C中进行如下转换: char PhoneNumber = char.Parse((item.FindControl("TxtPhoneNumber") as TextBox).Text); 但我有一个错误: mscorlib.dll中发生“System.FormatException”类型的异常 但未在用户代码中处理 附加信息:字符串长度必须正好为一个字符 如何解决此错误?您不需要转换它。数据库CHAR类型是字

我的数据库中有一个“电话”区域,数据类型为
char(11)

我需要在ASP.NET C中进行如下转换:

char PhoneNumber = char.Parse((item.FindControl("TxtPhoneNumber") as TextBox).Text);
但我有一个错误:

mscorlib.dll中发生“System.FormatException”类型的异常 但未在用户代码中处理

附加信息:字符串长度必须正好为一个字符


如何解决此错误?

您不需要转换它。数据库
CHAR
类型是字符串类型。唯一的区别是
CHAR
长度是固定的(在本例中为11个字符)

因此,只需按原样发送字符串:

string PhoneNumber = (item.FindControl("TxtPhoneNumber") as TextBox).Text;

注意:数据库
CHAR
类型与c#中用于存储单个字符的
CHAR
类型不同。

CHAR.Parse应采用长度为1的字符串,并返回CHAR值。如果要将textboxt内容转换为字符数组,可以执行以下操作:

string PhoneNumberstr = (item.FindControl("TxtPhoneNumber") as TextBox).Text);
char[] PhoneNumber = PhoneNumberstr.ToCharArray();

请看一下数据库和c之间的数据类型映射#
char
是一种表示一个字符的类型,对于其他数据库(oracle、mysql等),这应该是类似的。您无法将字符串解析为一个字符,除非该字符串正好是一个字符长(如错误消息所述)。答案显示了如何将字符串转换为字符数组,但如何将字符数组保存在数据库
char(11)
字段中?您必须再次转换回字符串。那有什么意义呢?只需将原始字符串直接发送到数据库。这是OP问题的实际答案。