检查vb.net文本框的内容



我使用一个文本框输入到我的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
                 ....
                   ...

开始:

  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等开始

只要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")

通过移除前缀"PL"提取一个数字
解析为整数
使用自定义数字格式字符串(零占位符)添加零和前缀

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)

我将使用方便的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字符串。PadLeft

相关内容

  • 没有找到相关文章

最新更新