roy
roy

Reputation: 729

How to custom format currency in datatable columns using Tostring() with VB.NET

I'm Trying to custom format currency in datatable columns using Tostring() with VB.NET

Please Guide Me.

Thanks

Public Class Form2
  Private Function GetDemoDataTable() As DataTable
        Dim periodicTable As New DataTable("PeriodicTable")

        periodicTable.Columns.Add("Name", GetType(String))
        periodicTable.Columns.Add("Symbol", GetType(String))
        periodicTable.Columns.Add("Price", GetType(Integer))

        Dim dr As DataRow = periodicTable.Rows.Add()
        dr(0) = "Hydrogen"
        dr(1) = "H"
        dr(2) = 1000

        dr = periodicTable.Rows.Add()
        dr(0) = "Helium"
        dr(1) = "He"
        dr(2) = 7000

        dr = periodicTable.Rows.Add()
        dr(0) = "Lithium"
        dr(1) = "Li"
        dr(2) = 6000

        dr = periodicTable.Rows.Add()
        dr(0) = "Beryllium"
        dr(1) = "Be"
        dr(2) = 25000

        dr = periodicTable.Rows.Add()
        dr(0) = "Boron"
        dr(1) = "B"
        dr(2) = 1500

        dr = periodicTable.Rows.Add()
        dr(0) = "Carbon"
        dr(1) = "C"
        dr(2) = 30000

        Return periodicTable
    End Function
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim dtCloned As DataTable = GetDemoDataTable().Clone()
        dtCloned.Columns(0).DataType = GetType(String)
        dtCloned.Columns(1).DataType = GetType(String) 
        dtCloned.Columns(2).DataType = GetType(String)

        For Each row As DataRow In GetDemoDataTable().Rows
            dtCloned.ImportRow(row)
        Next row

        dtCloned.Columns("Price").Convertcolumndatatable(Function(val) Double.Parse(val.ToString()).ToString("c", CultureInfo.CreateSpecificCulture("id-ID")))
        DataGridView1.DataSource = dtCloned
    End Sub
End Class


Public Module extension_method <System.Runtime.CompilerServices.Extension> Public Sub Convertcolumndatatable(Of T)(ByVal column As DataColumn, ByVal conversion As Func(Of Object, T)) For Each row As DataRow In column.Table.Rows row(column) = conversion(row(column)) Next row End Sub End Module

Result From Code

    Name          Symbol   Price
    Hydrogen        H   Rp1.000,00
    Helium          He  Rp7.000,00
    Lithium         Li  Rp6.000,00
    Beryllium       Be  Rp25.000,00
    Boron           B   Rp1.500,00
    Carbon          C   Rp30.000,00

Desired Result 1

    Name           Symbol   Price
    Hydrogen        H     Rp. 1.000
    Helium          He    Rp. 7.000
    Lithium         Li    Rp. 6.000
    Beryllium       Be    Rp.25.000
    Boron           B     Rp. 1.500
    Carbon          C     Rp.30.000

Desired Result 2

    Name           Symbol   Price
    Hydrogen        H       Rp. 1,000
    Helium          He      Rp. 7,000
    Lithium         Li      Rp. 6,000
    Beryllium       Be      Rp.25,000
    Boron           B       Rp. 1,500
    Carbon          C       Rp.30,000

Upvotes: 0

Views: 24

Answers (0)

Related Questions