获取作为参数传递的字符串的值

时间:2011-10-19 15:46:34

标签: vb.net string

我需要将参数传递给我的子/函数。

当参数传递时,字符串中的值,我想得到的值被评估并发送为:

Dim strParams As String = drRow(0)

' drRow is a row from DB Table. the value in drRow(0) =  
' "@FromDate=""" & Now.AddDays(-10).ToShortDateString & """&@ToDate=""" & Now.AddDays(-4).ToShortDateString "

我希望看到这转换为:

Dim strFinal as string 

strFinal = ProcessString(strParams)

最终结果应为:

strFinal = "@FromDate=10/09/2011&@ToDate=10/15/2011"

我有什么想法可以做到这一点。我从DB获取初始字符串,我需要转换为最终字符串,我无法弄清楚如何编写“ProcessString”函数。

感谢您的光临。

2 个答案:

答案 0 :(得分:2)

“IF”您可以将参数语句更改为简单的语句:

  

@FromDate =; - 10; @ToDate =; - 4

然后你可以这样做:

Dim strParams As String = "@FromDate=;-10;@ToDate=;-4"
Dim value As String = String.Empty
Dim parts() As String = strParams.Split(";"c)
If parts.Length = 4 Then
  Dim fromDays As Integer
  Dim toDays As Integer
  If Integer.TryParse(parts(1), fromDays) AndAlso Integer.TryParse(parts(3), toDays) Then
    value = parts(0) + Now.AddDays(fromDays).ToShortDateString + parts(2) + Now.AddDays(toDays).ToShortDateString
  End If
End If

MessageBox.Show("Value = " & value)

如果它比那更复杂,那么你将不得不开始使用大量的If和Select语句解析字符串的每个部分 - 你应该注意Jim Mischel的建议并尝试不同的方法。

答案 1 :(得分:1)

这是我根据建议使用的最终结果..谢谢大家。

Public Function ProcessParameters(ByVal strParams As String) As String

    Dim arrParams() As String
    'strParams = "@FromDate=-10;&@ToDate=-4;&@CompanyID=1"

arrParams = strParams.Split(";") Dim arrP() As String

    Dim strFinalParams As String = ""
    For Each strP As String In arrParams
        arrP = strP.Split("=")
        If arrP(0).ToString.EndsWith("Date") Then
            strFinalParams &= arrP(0) & "=" & Now.AddDays(arrP(1)).ToShortDateString
        Else
            strFinalParams &= arrP(0) & "=" & arrP(1)
        End If
    Next
    Return strFinalParams
End Function

}