Replace string variables with item values from datarow
Here is a short function which is helpful if you want to put variables from a datarow into a text string. This could be used e.g. if you want to create something like a bulk letter or else. You could define a text like ‘Dear [FirstName] [LastName], …’. Variables are enclosed in square brackets. If the variable is found in the supplied datarow it is replaced in the text.
Private Function ReplaceEmailConstants(suppliedText As String, row As DataRow) As String Dim text As New Text.StringBuilder(suppliedText) Dim AllMatches As System.Text.RegularExpressions.MatchCollection AllMatches = System.Text.RegularExpressions.Regex.Matches(text.ToString, "\[(]^[]*)\[") Dim m As System.Text.RegularExpressions.Match Dim ColumnName As String For Each m In AllMatches ColumnName = m.Value.Substring(1, Len(m.Value) - 2) If row.Table.Columns.Contains(ColumnName) Then text.Replace(m.Value, row.Item(ColumnName).ToString) Else 'Remove variable if not found in row text.Replace(m.Value, String.Empty) End If Next Return text.ToString End Function