2011-06-13 102 views
0

我在轉換中遇到問題。 Whate對這種轉換是錯誤的嗎?編譯器錯誤消息:無法將類型'long'隱式轉換爲'string'

以下是錯誤:

Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0029: Cannot implicitly convert type 'long' to 'string'

if (hid_Action.Value.ToString().ToUpper() == "RENEW") 
{ 
    string strHFUpdate = string.Empty; 
    string srt = Convert.ToInt64(Session["AppId"] + ",'" + Session["CAAID"].ToString() + "','" + Session["UserType"].ToString() + "'"); 
    strHFUpdate = "oea_sp_update_HF_MC_Renewal_Status " + srt; 
    rProxy.GlobalSaveData(Session["CountyName"].ToString().Trim(), strHFUpdate.ToString()); 
} 

感謝您的幫助!

+0

Not enough information ...什麼腳本語言?很明顯C#但你應該寫下來並標記它 – Omer 2011-06-13 18:10:50

+0

可能是我沒有正確理解你,但它是用asp.net,C#編寫的。 – userstackoverflow 2011-06-13 18:13:47

+0

這可能會幫助你:-http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/35a1ffd9-b82a-435d-9efb-2e8a779d24c0/ – 2011-06-13 18:15:05

回答

3
string srt = Convert.ToInt64(...); 

是的,那是行不通的。很難猜測這裏的目的是什麼,也許是一個缺失的括號。

0

這裏的問題是

string srt = Convert.ToInt64 

您試圖分配long值到string。你不能。您必須使用.ToString()將其更改爲字符串,然後才能分配。

還有一個錯誤,Convert.ToInt64不會將浮點數轉換爲數字,這意味着1.1會引發異常。你想要轉換的字符串是完全無效的,它應該做什麼?

+0

這是我的前任寫道: – userstackoverflow 2011-06-13 18:19:28

+0

if(hid_Action.Value.ToString()。ToUpper()==「RENEW」) { string strHFUpdate = string.Empty; ()「+」','「+ Session [」UserType「]。」ToString()+「,'」+ Session [「CAAID」]。 .ToString()+「'」); rProxy.GlobalSaveData(Session [「CountyName」] .ToString()。Trim(),strHFUpdate.ToString()); } – userstackoverflow 2011-06-13 18:20:04

+0

而我得到這個錯誤:輸入字符串不是正確的格式。 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。 異常詳細信息:System.FormatException:輸入字符串的格式不正確。 – userstackoverflow 2011-06-13 18:21:06

0

你不能用逗號和單引號字符串轉換成一個數字,此外,這兩種ToInt64()重載採用第二個參數:

你上面的代碼試圖將字符串隱式轉換爲另一種數據類型的ToInt64()可以採取一個單一的參數超載。 ToInt64()不支持從字符串轉換,但是這兩個重載需要兩個參數(見下文)

[從MSDN:http://msdn.microsoft.com/en-us/library/system.convert.toint64.aspx]

ToInt64(String, IFormatProvider) Converts the specified string representation of a number to an equivalent 64-bit signed integer, using the specified culture-specific formatting information.

ToInt64(String, Int32) Converts the string representation of a number in a specified base to an equivalent 64-bit signed integer.

但正如我所說,即使你沒有使用正確的重載函數,由於非數字字符,您的字符串不會被解析。

相關問題