2016-02-08 94 views
0

我正在使用MS SQL Server和Visual Basic。將來自不同列的兩個值合併到Datagridwiev的一列中

我想結合一個計算列和另一列來爲計算添加單位。 (例如「200平方米」)

DgwNewLayout.Columns(5).DefaultCellStyle.Format = "0.00 " & "'" & DgwNewLayout.CurrentRow.Cells(9).Value & "'" 

此代碼是否僅對第一次輸入的單位有效?我怎樣才能做到這一點每列?

+0

您是否實際循環遍歷所有數據網格以合併要合併的值?更好的做法是在數據庫本身做這件事。創建一個視圖或存儲過程,以您想要的樣式生成數據輸出,然後將網格視圖綁定到該視圖。 –

+0

我瞭解您的擔憂,但我並未使用大量數據。爲了提高效率,我將嘗試一個存儲過程。你能舉個例子嗎? (列1,列2至欄3) – Macukadam

回答

0

您可以使用CellFormatting事件。

Private WithEvents DgwNewLayout As DataGridView 

Private Sub DgwNewLayout_CellFormatting(sender As Object, 
    e As DataGridViewCellFormattingEventArgs 
) Handles DgwNewLayout.CellFormatting 

    If e.ColumnIndex = 5 Then 
     e.Value = CDbl(e.Value).ToString("0.00") & 
      " " & CStr(DgwNewLayout.Rows(e.RowIndex).Cells(9).Value) 
     e.FormattingApplied = True 
    End If 
End Sub 

正如Dom Sinclair所說,這可能會有糟糕的表現。

+0

'私人小組Unite_Transfer() 對於每行中DgwNewLayout.Rows 昏暗N作爲整數 N = N + 1 DgwNewLayout.Item(5中,n - 1).Style.Format =「 0.00「&」'「&DgwNewLayout.Item(9,n - 1).Value&」'「' Next End Sub'我已經使用過這個。我無法將您的代碼添加到列(5)中。但是,謝謝你的回答。你能解釋一下如何正確使用你的代碼嗎? – Macukadam

+0

我已經擴展了上面的代碼示例。現在第5列僅被格式化。 With'vents'使用'Handles',另請參閱[MSDN](https://msdn.microsoft.com/zh-cn/library/6k46st1y.aspx)。 – VV5198722

+0

非常感謝! – Macukadam

相關問題