2012-07-18 82 views
1

我正在使用vb.net,並且我創建了一個與OleDBConnection對象一起使用的sql語句。當我運行我的SQL(下)時,ExecuteReader會拋出一個錯誤(也在下面)。問題在於,它可以在運行的50多個en-US機器上運行,但現在我已經在德國獲得了我的第一個客戶機,並且在他們的機器上失敗了。我將我的開發機器設置爲德語設置以嘗試複製該問題,但它對我來說工作得很好。我複製了他們的確切數據文件,並在我的機器上運行。看起來這與它是一個非美國機器有關?SQL語句'缺少參數'在單機上失敗

這裏是SQL語句:

SELECT Val(IIf(IsNumeric([Sequence]), [Sequence], '0')), * 
FROM MyTable 
ORDER BY SomeOtherField, 1 

因此,在短期,我想通過序列列其次訂購,但在事件序列不是數字,我只給它一個「0 ',以便它可以根據我正在創建/選擇的動態列'1'進行排序。

這是德國機器上的錯誤: Fuer mindestens einen erforderlichen Parameter wurde kein Wert angegeben。
(粗略翻譯:至少有一個要求的參數沒有指定值)

有沒有人有任何想法,我的問題可能是什麼?預先感謝您提供給我的任何幫助。

-Greg

回答

1

這只是一個猜測。但是,嘗試用case語句替換IIF():

SELECT (case when IsNumeric([Sequence]) = 1 then [Sequence] 
      else '0' 
     end), 
     mt.* 
FROM MyTable mt 
ORDER BY SomeOtherField, 1 

我懷疑你的其他系統使用的Access和德國系統使用SQL Server。 SQL Server不識別iif。