Checking 3rd character with Char.IsNumber in vb.net
我正在搜索数据库并从中提取结果。在wpf中显示它之前,我正在检查名为primarysponsor的字段中文本的内容,该字段可以是(1)空白/空(2)第三个字符(3)人名处的数字。我目前正在使用char.isNumber检查选项2,如果位置4有数字。
1 2 3 4 5 6 7 8 9 10 11 12 | IF reader("PrimarySponsor") IS DBNull.Value THEN resultxPrimSpon ="" ELSEIF CHAR.IsNumber(reader("PrimarySponsor"), 3) THEN resultxPrimSpon ="Terminated" ELSE resultxPrimSpon = reader("PrimarySponsor") END IF |
在我签入char.isNumber之前,我得到了4个显示结果。当我添加char.isNumber代码时,只得到2个结果和错误;
Error while connecting to SQLServer.Sepcified argument was out of the range of valid values. Parameter name: index.
有人知道为什么会发生这种情况或者如何解决它吗?
由于
ArgumentOutOfRangeException : index is less than zero or greater than
the last position in s.
所以看起来至少有一个字符串短于4个字符。通常,如果必须多次访问读卡器值,则应将读卡器值存储在正确类型的变量中。在这种情况下,在
但创建一个具有所有属性的自定义类型也是一个好主意。然后您可以将所有内容添加到
1 2 3 | Public Class Sponsor Public Property PrimarySponsor AS String END Class |
当然,你也可以用
…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Dim allSponsors AS NEW List(OF Sponsor) USING reader = command.ExecuteReader() IF reader.HasRows THEN Dim primSponsorColumnIndex = reader.GetOrdinal("PrimarySponsor") While reader.Read Dim sponsor AS NEW Sponsor() IF reader.IsDBNull(primSponsorColumnIndex) THEN sponsor.PrimarySponsor ="" ELSE sponsor.PrimarySponsor = reader.GetString(primSponsorColumnIndex) IF sponsor.PrimarySponsor.Length >= 4 AndAlso _ CHAR.IsDigit(sponsor.PrimarySponsor(3)) THEN sponsor.PrimarySponsor ="Terminated" END IF END IF allSponsors.Add(sponsor) END While END IF END USING |
首先用
C中char.isDigit()和char.isNumber()的区别#