2012-07-03 43 views
0

在SQL它工作正常dataSet.xsd查詢選擇其中

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只有這樣工作的: Dataset.xsd File SELEC牛逼NOID,NO_DOSSOIN,NO_ORDO,POSOLOG FROM dbo.ESPMEDS_ORDO_SORTIR WHERE NO_DOSSOIN = 10,NOID(16)

錯誤說我不能從字符串轉換數據爲int

The Structure

+0

Peu tu nous montrer la structure de la table'dbo.ESPMEDS_ORDO_SORTIR' pour voir quel sont les types dedonnés? – phadaphunk

+0

我不禁止您在此處使用英語以外的語言,但在StackOverflow問題中進行非英語討論並不理想。在聊天中進行非英語討論可能會更好,然後在此處以英文發表您的發現。請看看這個:http://blog.stackoverflow.com/2009/07/non-english-question-policy/ – Polynomial

+0

***你可以顯示'dbo.ESPMEDS_ORDO_SORTIR'表設計,所以我們可以看到數據類型 – phadaphunk

回答

0

你應該只分開NOIDIN。不要指望能夠通過看起來像16,17Int32,它總是被這個嚮導看作是一個字符串,如果你從代碼中執行它,根本不會編譯。

enter image description here

你最簡單的方法是通過範圍在兩個值是這樣的:

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

如果您的參數是動態的,您應該閱讀this article,這幾乎涵蓋了該主題。

+0

感謝您的迴應,但它是動態的,有時只有2個數據16,17有時3個數據16,15,20或10個數據或更多 – user609511

+0

我更新了我的答案。如果您發現您要查找的內容,請忘記將問題標記爲已回答:-) – phadaphunk