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问题的实际答案。