【问题标题】:Compiler Error Message: Cannot implicitly convert type 'long' to 'string'编译器错误消息:无法将类型“long”隐式转换为“string”
【发布时间】:2011-06-13 18:09:10
【问题描述】:

我有一个转换问题。这个转换有什么问题?

这是错误:

编译错误说明:一个 编译过程中发生错误 提供服务所需的资源 要求。请查看以下内容 具体错误详情并修改您的 源代码适当。

编译器错误消息: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());
}

感谢您的帮助!

【问题讨论】:

  • 信息不足...什么脚本语言?很明显 C# 但你应该把它写下来并标记它
  • 可能我没有正确理解你,但它是用asp.net,C#编写的。
  • 哦,很高兴知道,但有人已经重新标记了您的问题。

标签: c# string long-integer


【解决方案1】:
 string srt = Convert.ToInt64(...);

是的,这行不通。很难猜出这里的意思,可能是缺少括号。

【讨论】:

    【解决方案2】:

    问题来了

    string srt = Convert.ToInt64
    

    您正在尝试将 long 值分配给 string。你不能。您必须使用.ToString() 将其更改为字符串,然后才能进行分配。

    还有一个错误,Convert.ToInt64 不会用浮点数转换数字,这意味着1.1 会抛出异常。您尝试转换的字符串完全无效,它应该做什么?

    【讨论】:

    • 这是我前任写的:
    • if (hid_Action.Value.ToString().ToUpper() == "RENEW") { string strHFUpdate = string.Empty; strHFUpdate = "oea_sp_update_HF_MC_Renewal_Status" + Convert.ToInt64(Session["AppId"].ToString() + ",'" + Session["CAAID"].ToString() + "','" + Session["UserType"]。 ToString() + "'"); rProxy.GlobalSaveData(Session["CountyName"].ToString().Trim(), strHFUpdate.ToString()); }
    • 我收到此错误:输入字符串的格式不正确。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.FormatException:输入字符串的格式不正确。
    【解决方案3】:

    您不能将带有逗号和单引号的字符串转换为数字,此外,两个 ToInt64() 重载都需要第二个参数:

    您上面的代码试图将字符串隐式转换为 ToInt64() 可以采用单个参数的重载的另一种数据类型。 ToInt64() 确实支持从字符串转换,但是这两个重载都需要两个参数(见下文)

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

    ToInt64(字符串, IFormatProvider) 转换 a 的指定字符串表示 数字转换为等效的 64 位有符号数 整数,使用指定的 文化特定格式 信息。

    ToInt64(String, Int32) 转换 a中数字的字符串表示 指定基数到等效的 64 位 有符号整数。

    但正如我所提到的,即使您确实使用了正确的重载函数,由于非数字字符,您的字符串也无法解析。

    【讨论】:

      猜你喜欢
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      相关资源
      最近更新 更多