0

在 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 只能像这样工作: 数据集.xsd 文件 SELECT NOID, NO_DOSSOIN, NO_ORDO, POSOLOG FROM dbo.ESPMEDS_ORDO_SORTIR WHERE NO_DOSSOIN = 10 AND NOID IN (16)

错误说我无法将数据从字符串转换为 int

结构

4

1 回答 1

0

你应该把NOIDIN. 不要期望能够传递一个Int32看起来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

@NOIDEND = 17

如果你的参数是动态的,你应该阅读这篇文章,它几乎涵盖了这个主题。

于 2012-07-03T13:43:09.247 回答