程序里写了一句类似这样的语句select username from users where id = @id
报表的url如下
http://localhost/ReportServer/Pages/ReportViewer.aspx?%2f%e5%a4%a9%e8%81%8c%e6%8a%a5%e8%a1%a8%2f%e6%96%87%e5%8d%b0%e5%ae%a4%e5%b7%a5%e4%bd%9c%e9%87%8f%e7%bb%9f%e8%ae%a1%e8%a1%a8&rs:Command=Rende&id=100201151416682516最后是我传的id的值  即&id=100201151416682516   使它等于 @id但跑起来后 提示 
报表参数“id”为只读,无法修改。 (rsReadOnlyReportParameter)求解  !!!

解决方案 »

  1.   

    请问id是什么类型的?如果是数值类型那没问题,如果不是,那么SQL语句要改成:
    select username from users where id ='@id'请问你的代码里是不是有给id赋值的语句?你这里有点容易混淆,因为querystring有个变量id,而你又得给@id赋值,我觉得你还是给@id起个容易分辨的名字吧。
      

  2.   


    我要传的这个@id 是varchar(20) 的
    实际的是   这样的   where userid = @id (即你说的那个混淆问题不存在)现在变成  这样了   参数验证失败。不可能为所有参数提供有效值。 (rsParameterError) 
    我把 之前的改成 你说的这样了   where id = '@id'
      

  3.   


    跟本身 参数的设置 有关系吗  我现在 设置的这个参数  是隐藏的 默认值为NULL  其他的没有设置  
      

  4.   

    是不是sql语句中对@id参数赋值了?