2014-01-11 79 views
0

首先我用下面的填充DataGridViewdatagridview的不顯示貨幣格式

 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。 (工作至今)

如果一列沒有被做了數據集時的任何值,沒有值顯示在DataGridView該列。 (目前沒有問題)

但是,所有添加到空白列的新值顯示爲1234.00。不是$ 1234.00。

我已經嘗試刷新DataGridView 我更改單元格後重新格式化了DataGridView。 它仍然顯示爲1234.00。

如果我保存更改,重新創建DataSet和重新填充的DataGridView一切正常。

我需要在DataGridView以反映新的當值被直接添加到列的正確格式($ 1234.00)?????

+1

如果將線:Me.DataGridView1.Columns(1).DefaultCellStyle.Format =「C2」後立即綁定和列是數字,它的工作原理。請參閱:http://msdn.microsoft.com/en-us/library/vstudio/f9x2790s%28v=vs.100%29.aspx?cs-save-lang = 1&cs-lang = vb#code-snippet-5 – NoChance

+0

我已經加入的結合的結合後立即以下:DataGridView1.Columns(1).ValueType = System.Type.GetType( 「System.Decimal」) DataGridView1.Columns(2).ValueType = System.Type.GetType(「系統.Decimal「) DataGridView1.Columns(1).DefaultCellStyle.Format = 」C2「 DataGridView1.Columns(2).DefaultCellStyle.Format = 」C2「。將值添加到空白列時仍然顯示值爲1234.00而不是$ 1234.00。 – user3184880

+1

這可能是因爲數據表中的列類型不是數字。檢查datacolumn數據類型。 – NoChance

回答

0

如果您使用此行

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

它必須是工作,但如果你的數據庫字段的格式是不是小數(但TEXT),這種類型的格式它永遠不會工作。