我正在编写一些旧的VB代码,它创建了一个System.Data.DataTable并定义了一些列。它工作得很好,只是我需要一个列来显示为货币,而不仅仅是浮点数。我该怎么做?
Dim myDataTable As New System.Data.DataTable("tblRec")
myDataTable.Columns.Add("RECAMOUNT", System.Type.GetType("System.Double"))
Protected WithEvents DataGridCurrentCRLines As Global.System.Web.UI.WebControls.DataGrid
Session("CRLines") = myDataTable
DataGridCurrentCRLines.DataSource = Session("CRLines")将行更改为:
myDataTable.Columns.Add("RECAMOUNT", System.Type.GetType("System.Decimal"))没有区别,我指的是显示1234567.89,而不是1,234,567.89
发布于 2014-09-18 14:56:55
@Time Schmelter的提示指向正确的方向。
首先将类型更改为string:
myDataTable.Columns.Add("RECAMOUNT", System.Type.GetType("System.String")然后,我编写了一个帮助器方法来将字符串转换为货币字符串,似乎不能从字符串直接转换为货币字符串,而是必须字符串-> Decimal ->货币字符串。
Private Function ConvertStringToCurrencyString(ByVal inputString As String) As String
Dim currencyString As String
currencyString = ""
Dim myDecimal As Decimal
Try
myDecimal = System.Convert.ToDecimal(inputString)
currencyString = myDecimal.ToString("C2")
Catch exception As System.OverflowException
System.Console.WriteLine("ConvertStringToCurrencyString(): Overflow in string-to-decimal conversion.")
Catch exception As System.FormatException
System.Console.WriteLine("ConvertStringToCurrencyString(): The string is not formatted as a decimal.")
Catch exception As System.ArgumentException
System.Console.WriteLine("ConvertStringToCurrencyString(): The string is null.")
End Try
Return currencyString
End Functionhttps://stackoverflow.com/questions/25857220
复制相似问题