在SQL中它可以正常工作
SELECT NOID, NO_DOSSOIN, NO_ORDO, POSOLOG FROM dbo.ESPMEDS_ORDO_SORTIR
WHERE NO_DOSSOIN = @NO_DOSSOIN AND NOID IN (@NOIDIN)
示例
SELECT NOID, NO_DOSSOIN, NO_ORDO, POSOLOG FROM dbo.ESPMEDS_ORDO_SORTIR
WHERE NO_DOSSOIN = 10 AND NOID IN (16,17)
但是当我把它放在dataset.xsd查询中时,我没有得到相同的输出,我不能将多个id放入NOIDIN参数,因为NOID类型是整数
所以我的文件DataSet.xsd只能这样工作: SELECT NOID,NO_DOSSOIN,NO_ORDO,POSOLOG来自dbo.ESPMEDS_ORDO_SORTIR 在哪里NO_DOSSOIN = 10且NOID IN(16)
错误说我无法将数据从字符串转换为int
答案 0 :(得分:0)
您应该将NOIDIN
分开。不要期望能够传递看起来像Int32
的{{1}},它将始终被此向导视为字符串,并且如果从代码执行它,则根本不会编译。< / p>
最简单的选择是将范围传递给两个值,如下所示:
16,17
然后分配:
SELECT NOID, NO_DOSSOIN, NO_ORDO, POSOLOG FROM dbo.ESPMEDS_ORDO_SORTIR
WHERE NO_DOSSOIN = @NO_DOSSOIN AND NOID IN (@NOIDSTART, @NOIDEND)
@NOIDSTART = 16
如果你的参数是动态的,你应该阅读this article,这几乎涵盖了这个主题。