2014-01-29 77 views
0

如果我創建一個新的OleDbReader如下:類型轉換任何OleDbReader Double/Int16/Int32/Int64到C#double?

OleDbCommand command = new OleDbCommand(query, ActiveConnection); 
reader = command.ExecuteReader(); 
while(reader.Read()) 
{ 
    someList.Add((double)reader["columnHeader"]); 
} 

我怎麼能保證我從塔雙指明,如果返回的數據類型爲Int16的/的Int32/Int64的,而不是雙我總是返回?我是否必須爲每種可能的類型創建一個處理程序?我知道Double.Parse存在,但它只接受字符串。所以,雖然我可以事先使用ToString(),但我認爲這可能不是最直接的方式。

同樣,對於另一列,我希望確保任何字符串/ Double/Int16/Int32/Int64值返回爲字符串。 ToString()會處理這些情況嗎?

我很好,有潛在的溢出錯誤,因爲我會檢查異常無論。

回答

3

您應該致電Convert.ToDouble(),它有每種類型的處理程序。

相比之下,ToString()將適用於任何非空值。 (只要它覆蓋ToString();所有數字類型都可以)

+0

完美。不知道我以前沒有遇到過。 – grovesNL