2012-06-26 70 views
0

我有一個有幾個頭的excel表。標題之一是Param2。分配給Param2的變量在我的代碼中是strParam2。這是strParam2是如何在我的代碼不能隱式地將double轉換爲字符串錯誤

String strParam2 = xlRange.Cells[row, 7].Value; 

我的代碼讀取的理想在Excel工作表的單元和執行的一組動作聲明。我在Excel表格的Param2下給出了一個值爲2的值。爲了將其轉換爲字符串,我用線

System.Int32.TryParse(strParam2.ToString(), out iDetailLevel); 

不過,我得到一個錯誤「無法隱式轉換到雙串」我想這太行,但我卻得到一個錯誤一次。

System.Double.TryParse(strParam2.ToString(), out iDetailLevel); 

這裏有什麼問題?有沒有人經歷過類似的事情?

+0

什麼是'iDetailLevel'? –

+0

是類型爲Int32或Double的strParam2或(如前綴所示)是字符串嗎? – KazR

+1

@KazR作爲前綴建議,strParam2被默認聲明爲一個字符串... – user1473998

回答

2

看起來特定單元格的值是雙精度值,並且您的代碼正試圖通過=將其轉換爲字符串implicitly convert。您需要檢查該單元格的值,並轉換相應

String strParam2 = xlRange.Cells[row, 7].Value;

是:

String strParam2 = xlRange.Cells[row, 7].Value.ToString();

如果像你說的,strParam2其他地方在代碼中使用,那麼只需要創建一個新的字符串以保留標題文本並保留其不變:

string headerText = xlRange.Cells[row, 7].Value.ToString();

+0

嗨...我在我的代碼中使用相同的變量來實現一些功能,它需要它是一個雙精度型。如果我使用你的想法,我得到我的其他功能的錯誤... – user1473998

+0

爲什麼不創建一個新的字符串來保存標題文本,然後離開'strParam2'呢? – dtsg

+0

我得到一個錯誤,如果我按照你的想法「不能執行空引用上的運行時綁定」數據錯誤來自字符串headerText = xlRange.Cells [row,7] .Value.ToString(); – user1473998

3

最有可能的,你要在哪裏分配給strParam2因爲xlRange.Cells[row, 7].Value回報double,不能隱式轉換爲string行的錯誤。

+0

是的......我只在該行中得到一個錯誤。實際上,相同的字符串變量strParam2被不同的函數多次使用......其中一個函數需要strParam2是一個int,對於ex 2或3或5 ...這就是當我得到這個錯誤..如何使用這個字符串變異的特定功能?任何想法 ??? – user1473998

+1

稍後您不能將'string'變量更改爲'int'。你不能爲不同類型使用不同的變量嗎? –

+0

@ErenErsönmez,非常好的捕獲。 –

0

如果你有行:

String strParam2 = xlRange.Cells[row, 7].Value.ToString(); 

爲杜安建議。您不需要在解析中使用.ToString()。只需使用strParam2值。

相關問題