2012-08-17 55 views
0

我有一個DataColumn,我想將其中的所有行乘以某個值。假設我有一列名爲價格,在DataColumn.Expression屬性允許我這樣做以下列方式:將數據列乘以一個參數

MyDataColumn.Expression = "price * 0.0862" 

不過如果我想用一個參數是什麼?我想這樣寫:

Dim tax As Double = 0.0862 
MyDataColumn.Expression = "price * tax" 

但這樣做在Visual Basic實際上乘以列價格與列,這不是我想要的。

任何想法?

回答

2

爲什麼不直接使用這樣的變量:

Dim tax As Double = 0.0862 
MyDataColumn.Expression = "price * " & tax 

編輯:

你必須tax轉換爲字符串InvariantCulture第一:

Dim tax As Double = 0.0862 
MyDataColumn.Expression = "price * " & tax.ToString(CultureInfo.InvariantCulture) 

否則, MyDataColumn.Expression將是price * 0,0862而不是price * 0.0862和DataColumn將會抱怨語法錯誤。

+0

嗨BigYellowCactus並感謝您的回答。這樣做會導致語法錯誤。同樣的事情,如果我首先聲明'Dim strExpression as String =「price *」&tax'並且執行'MyDataColumn.Expression = strExpression' – Nicolas 2012-08-17 08:40:27

+0

它可能在運行時,我想知道是否因爲隱式tax.ToString )發生。我喜歡使用String.Format(或帶格式說明符的ToString)以避免模糊。 – dash 2012-08-17 08:48:25

+0

DataTable的可以在運行時抱怨實際表達式的語法:-)直到那時它才真正被DataTable類所評估。 – dash 2012-08-17 08:55:07