问题描述
||
我在convert依中有问题。这次转换有什么问题吗?
这是错误:
编译错误说明:
编译期间发生错误
服务于此的资源
请求。请查看以下内容
具体的错误详细信息并修改您的
源代码适当。
编译器错误消息:CS0029:无法
隐式地将类型'long \'转换为
\'串\'
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());
}
感谢您的帮助!
解决方法
string srt = Convert.ToInt64(...);
是的,那行不通。很难猜测这里的意图,也许是缺少括号。
, 这是问题所在
string srt = Convert.ToInt64
您试图将long
值分配给string
。你不能。您必须使用.ToString()
将其更改为字符串,然后才能进行分配。
还有一个错误,Convert.ToInt64
不会将数字转换为浮点数,这意味着1.1
将引发异常。您尝试转换的字符串完全无效,它应该怎么做?
, 您不能将带有逗号和单引号的字符串转换为数字,此外,两个ToInt64()重载都采用第二个参数:
上面的代码试图将字符串隐式转换为ToInt64()可以使用单个参数进行重载的另一种数据类型。 ToInt64()确实支持从字符串转换,但是这两个重载都带有两个参数(请参见下文)
[来自MSDN:http://msdn.microsoft.com/en-us/library/system.convert.toint64.aspx]
ToInt64(String,
IFormatProvider)转换
指定的字符串表示形式
数字到等效的64位带符号
整数,使用指定的
特定于文化的格式
信息。
ToInt64(String,Int32)转换
一个数字的字符串表示形式
指定基数为等效的64位
有符号整数。
但是正如我提到的,即使您确实使用了正确的重载函数,由于非数字字符,您的字符串也将无法解析。