我面临着VB.NET的问题以及在DataSet上创建SQL TableAdapter(使用IBM DB2)。
我可以毫无问题地使用这样的SQL:
select f1, f2, f3 from table where y1=@param1 and y2=@param2
然后调用TableAdapter填充如下:
TableAdapter.FillBy(Me.DataSetName.Table, value1, value2)
但是,如果我尝试做一个UNION句子,如:
select f1, f2, f3 from table where y1=@param1 and y2=@param2
UNION select f1, f2, f3 from table2 where y1=@param1 and y2=@param2
当我调用TableAdapter时,TableAdapter设计器不会提示任何错误。填写它需要4个参数而不是2个,就像它不能重复使用相同的参数一样,即使名称是在两个SQL表中都是一样的。
有没有办法避免使用4个不同的参数?
先谢谢。
答案 0 :(得分:0)
我从未使用过DB2,但似乎没有其他人能够得到答案,所以我会根据我的MSSQL经验给它一个镜头。
尝试使用变量扩充查询,这样您只需要编写一次。 (数据类型猜测......):
DECLARE v_param1, v_param2 VARCHAR;
SELECT @param1, @param2 INTO v_param1, v_param2;
SELECT f1, f2, f3 FROM table WHERE y1=v_param1 AND y2=v_param2
UNION
SELECT f1, f2, f3 FROM table2 WHERE y1=v_param1 AND y2=v_param2