2011-10-19 15 views
-1

サブ/ファンクションにパラメータを渡す必要があります。パラメータとして渡される文字列の値を取得します。

Dim strFinal as string 

strFinal = ProcessString(strParams) 
:私はこれがに変換見たい

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 " 

パラメータが渡され、文字列の値、私は価値があると評価して送信されますしたいと思います

最終結果:

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

どのように私はこれを行うことができますアイデア。私はDBから最初の文字列を取得している、私は最終的な文字列に変換する必要が、私は "ProcessString"関数を記述する方法を見つけることができません。

ありがとうございます。

+1

どのパラメータがどのように見えるのでしょうか? – PVitt

+0

この関数に渡すパラメータの数は固定されていますか?そしてこれは何のために使われるだろうか? – Purplegoldfish

+0

これは本当に混乱しやすい質問です。 strParamsはstrFinalと同じものです。あなたは何を変えようとしていますか? – LarsTech

答えて

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) 

それは、あなたがもしたくさんのを使用して文字列のすべての部分を解析を開始し、あなたはおそらく耳を傾ける必要があるstatements--選択する必要がありますよりも複雑何だ場合ジム・ミッシェルの助言と別のアプローチを試してみてください。

+0

ありがとう@LarsTech、これは私にこれを達成する方法のアイデアを与える。私は渡す文字列が動的になり、いくつかの日付のカップル以上を持っているので、私はあなたとジムの両方のアプローチを使用しなければなりません。しかし、皆さんは私に道を教えてくれました。私はこれに取り組んだ後に私はポストバックします。みんなありがとう。 – user1003512

+0

これは私がそれを使った方法です: – user1003512

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 

}

関連する問題