簡體   English   中英

如何轉換 DataTable 列類型?

[英]How To Convert The DataTable Column type?

我正在嘗試實施:

dtGroupedBy.Compute("sum(POWER)",dvv.RowFilter); 

它導致錯誤:

聚合 function Sum() 和類型:字符串的使用無效。

我們如何將它轉換為它的列類型?

這將取決於您如何創建DataTable 如果它只是直接來自 SQL,您應該考慮更改 SQL 本身,以便在您獲取它時轉換 POWER 列。

但是,如果值首先應該始終是數字,我強烈建議您重新訪問您的數據庫模式 - 如果可能的話,更改列類型會更干凈。

您不能在字符串字段上使用Sum()聚合 function。

你可以做兩件事

  • 將數據庫(或架構)中現有的列項重新定義為數字字段。(推薦)
  • 對傳遞給聚合 function 的數據進行System.Int32轉換。 所以你可以做以下

dtGroupedBy.Compute("sum(CONVERT(" + POWER + ",'System.Int32'))",dvv.RowFilter);

Compute 方法支持表達式,並且它們支持您可以在表達式內部使用的CONVERT function

例如,您可以計算列的總和,例如

MyDataTable.Compute("Sum(Convert(your column name, 'Data Type'))") 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM