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