This code allows you to format a textbox string to the correct currency in SQL Server, independent of regional settings or the user input decimal symbol:
Public Function FormatMoney(ByVal strValue As String) As String
'**This function fails if the user uses a digit grouping symbol and no decimal symbol.
'** Get the decimal symbol from the system
Dim DecS As String = Mid$(CStr(1.1), 2, 1)
'** Find the location of the first dot
Dim intDot As Integer = InStr(strValue, ".")
'** Find the location of the first comma
Dim intComma As Integer = InStr(strValue, ",")
'** Select your regional decimal sign
Select Case DecS
Case ","
'** Check to see if a dot or comma was used by the user
If intDot > intComma Then
'** make sure only the decimal sign remains
strValue = Replace(strValue, ",", "")
strValue = Replace(strValue, ".", ",")
End If
'** round the value to 2 decimals
strValue = Decimal.Round(strValue, 2)
'** prepare the value for SQL server
strValue = Replace(strValue, ",", ".")
Case "."
If intComma > intDot Then
'** make sure only the decimal sign remains
strValue = Replace(strValue, ".", "")
strValue = Replace(strValue, ",", ".")
End If
'** round the value to 2 decimals
strValue = Decimal.Round(strValue, 2)
End Select
Return strValue
End Function