数据网格视图不显示货币格式



首先,我使用以下方法来填充DataGridView

        dta = New OleDbDataAdapter("Select * From [" & ActName & "$B6:E" & LastEntryRow & "]", cn)
        dts = New DataSet
        dta.Fill(dts, "Detailtable")
        DataGridView1.DataSource = dts
        DataGridView1.DataMember = "Detailtable"

然后,我格式化了 DataGridView,其中包括以下代码:

    Dim currencyCellStyle As New DataGridViewCellStyle
    currencyCellStyle.Format = "C2"
    With Me.DataGridView
        .Columns(1).DefaultCellStyle = currencyCellStyle
        .Columns(2).DefaultCellStyle = currencyCellStyle
    End with

这很有效。列将其值显示为 $1234.00。当新值添加到列中时,它们立即显示为 $1234.00。(目前工作)

如果创建数据集时列没有任何值,则该列的数据网格视图中不会显示任何值。(到目前为止没有问题)

但是,添加到空白列的所有新值都显示为 1234.00。不是 1234.00 美元。

我试过刷新数据网格视图在更改为单元格后,我已经重新格式化了数据网格视图。它仍显示为 1234.00。

如果我保存更改,请重新创建数据集并重新填充数据网格视图一切正常。

当新值直接添加到列时,我需要 DataGridView 反映正确的格式($ 1234.00?????

如果您使用此行

DataGridView1.Columns(1).DefaultCellStyle.Format = "C2"

它必须是有效的,但是如果您的数据库列格式不是十进制(而是TEXT),则这种类型的格式将永远无法正常工作。

最新更新