问题如下:添加DataSet1.xsd,新建DataTable1,TableAdapter1,   //表名是MYTABLE,列名ID的数据类型是varchar
连接方式是OLEDB联ORACLE,用TableAdapter配置向导中查询生成器生成查询语句SELECT * FROM MYTABLE WHERE ID=:PARAM1
在查询生成器中运行"执行查询"一项,要求输入参数PARAM1,输入"01"   //不包括引号
得到正确的查询结果
确定退出后,在DataSet1.xsd中右键选预览数据,要求输入参数(数据类型为AntiString),输入"01"   //不包括引号
出错,大概意思是未能查询,ORA-01008,未定义变量.不理他,新建报表report1.rdlc,从数据源中将ID拖入报表
将reportViewer绑定报表report1.rdlc直接运行,下面这行报错
TableAdapter1.Fill(DataSet1.MYTABLE, "01")   //ORA-01008,未定义变量看到很多人都是自己在写代码生成DataTable,TableAdapter,然后用Add添加参数,我这样做也成功运行了.
可是现在要做报表mYTABLEBindingSource,mYTABLETableAdapter1什么的都是在reportViewer绑定数据源时自动生成的,好像不能用Add添加参数应该怎么改呢?想问:1.是不是没声明变量的原因,就是那个PARAM1,应该怎么声明与传递?
2.上问比较困难的话,是不是可以自己写代码绑定报表的数据源,然后再Add,代码怎么写?哪位高人能指导一下,不胜感激

解决方案 »

  1.   

    呵呵,很久没登陆了。不知道楼上还能不能看到我苦思冥想出的的解决办法。
    SQL语句SELECT * FROM MYTABLE WHERE ID=:PARAM1
    改成SELECT * FROM MYTABLE WHERE ID=?重点:脑残的程序会自动把"?"改成":PARAM1",然后你手动再改回来就行了,
    参数在fill函数中传递。