检查textbox vb.net的内容

时间:2015-07-09 07:40:30

标签: asp.net vb.net gridview textbox user-input

我正在使用文本框输入我的SQL查询。根据输入,我创建一个特定的查询并在gridview中显示数据。

但我希望对用户进行调整。

他们经常像PL26那样输入...但是这不是数据库中要搜索的有效名称。因此,我想检查他们的输入,并相应地改变它,所以他们不必考虑它。

我碰巧知道当他们输入PL26时,正确的输入将是PL000026 ...要搜索的实体总是" PL" + 6个字符/数字......所以如果他们写了PL155,我传递给sql查询的数字/字符串应该变成PL + 000 + 155 = PL000155。

我希望有人可以帮助我如何实现这一目标。那是否可能?

我的想法/伪代码就像是

If tbInput.txt's FIRST 2 CHARS are PL, then check total length of string
     if StringLength < 8 characters, then 
            if length = 2 then ADD 4 0' after PL...
                if length = 3 then add 3 0's after  PL...
                    if length = 3 then add 3 0's after  PL..  
              etc
                 ....
                   ...

4 个答案:

答案 0 :(得分:0)

我们走了:

  Private Sub Button21_Click(sender As System.Object, e As System.EventArgs) Handles Button21.Click

        Debug.Print(formatCode("PL1"))
        Debug.Print(formatCode("PL"))
        Debug.Print(formatCode("PL01"))
        Debug.Print(formatCode("PL155"))


    End Sub

    Private Function formatCode(userInput As String) As String

        Dim returnVal As String
        If userInput.Length < 8 Then
            returnVal = String.Concat(userInput.Substring(0, 2), userInput.Substring(2, userInput.Length - 2).PadLeft(6, "0"))
        Else
            returnVal = userInput
        End If

        Return returnVal

    End Function

您可能需要添加一些验证,确保它以PL等开头。

答案 1 :(得分:0)

只要PL和数字之间没有其他非数字字符,以下内容就会起作用。您始终可以在验证中添加它。

Dim newInput As String

If (input.StartsWith("PL")) Then
    input = input.Remove(0, 2)
End If

' If this fails then it means the input was not valid
Dim numberPart = Convert.ToInt32(input)

newInput = "PL" + numberPart.ToString("D6")

答案 2 :(得分:0)

通过删除前缀“PL”来删除数字 解析为整数
使用Custom Numeric Format Strings(零占位符)添加零和前缀

Const PREFIX As String = "PL"
Dim exctractedNumber As Int32
If Int32.TryParse(tbInput.txt.Replace(PREFIX, String.Empty), exctractedNumber) = False Then
    'Error nahdling
    Exit Sub
End If
Dim finalFormat As String = String.Format("'{0}'000000", PREFIX)
Dim finalValue As String = exctractedNumber.ToString(finalFormat)

答案 3 :(得分:0)

我会使用方便的PadLeft方法:

Dim input As String = "PL26"
Dim number As String = input.Substring(2, input.Length - 2)

If number.Length <> 6 Then
    number = number.PadLeft(6, "0"C)
End If

MSDN String.PadLeft