比如说  string id = Request.QueryString["id"].ToString();等到的是 id ="123456"我要怎么把它变成 123456L 长整形

解决方案 »

  1.   

    你的数据类型“123456L”是long类型啊,
    转成Int64:
    Int64 i=Convert.ToInt64(id);
      

  2.   

    错了,是
    long i=Convert.ToInt64(id);
      

  3.   

    可以这样:
    string text = "123456";
    Int64 value = Convert.ToInt64(text);
    也可以这样:
    string text = "123456";
    Int64 value;
    try
    {
        if (!Int64.TryParse(text, out value))
        {
            // TODO - Notify that error occurs        Console.WriteLine("Error occurs while converting text to int64 value.");
        }    Console.WriteLine("{0}", value);
    }
    catch(ArgumentException ex)
    {
        // TODO - Notify that error occurs    Console.WriteLine(ex.Message);
    }
      

  4.   


    你晓不晓得那个“L”的意思呀?你分别定义一个int32值和一个int64值,然后debug一下:你看到了吗?所谓的“L”,不就是第二个截图里面的情形吗?
      

  5.   


     ItemcatsGetResponse ite = ItemAPI.itempropsGet(0L);
     这样传正常         Int64 _id = Convert.ToInt64(id);
            ItemcatsGetResponse t = TopApiHelper.ItemAPI.itempropsGet(_id);
             这样什么都得不到啊
      

  6.   

    我觉得,第一,Convert.ToInt64这个用法,按理说你应该加一个try...catch。道理你一定明白,不解释。第二,我觉得你应该debug一下,然后拿debug的结果来问。我们可不知道你的那个itempropsGet是什么玩艺。
      

  7.   

    如果是用stringbuilder  转Int又转不过去。。愁死我了 坑爹的淘宝API
      

  8.   

    楼主啊,对你很无语了。。你要传的是字符,还是数字啊。如果是字符的话,你直接自己在字符串后面再加个l就行了。如果是数字的话,这个l怎么都弄不出来的。。代码里写成123456L,这个L只是要告诉编译器这是个长整型,L本身并不会存入数字当中