2013-10-11 68 views
0

我發送字符串,我在fom c#中,我發送它到一個程序在那裏我用它作爲nvarchar(1000),然後在SQL IN運算符中使用它,但我收到錯誤「轉換失敗時轉換一個字符串uniqueidentifier。「我收到錯誤「從字符串轉換爲uniqueidentifier時轉換失敗。」

我送這個

SET @a='E1554084-7B8F-4F04-B6B3-4892E4C5687F','4B555046-152B-411D-A611-D9D507906259' 
在字符串生成器

,我想使用逗號作爲經營者未在SQLSERVER字符串

SELECT * FROM MemberJobDetails WHERE GradeID IN (@a) 

這裏GradeID是唯一標識符

+0

投你的字符串作爲你的SQL語句中的唯一標識符或試圖簡單地把周圍的GUID字符串{...} – jazzytomato

+0

你的參數'@a支架'是一個**單個字符串**,而'IN'運算符期望一個**列表項**作爲其參數.... –

+1

發生在*包含*逗號的單個字符串在邏輯上是不同的東西來自多個字符串*用逗號分隔*。你有什麼是前者。在這裏搜索參數化「IN」,你會發現許多不同的(更好或更差)解決方案。 –

回答

0
Following query may help you 

DECLARE @UID NVARCHAR(2000) 
SET @UID='2A66057D-F4E5-4E2B-B2F1-38C51A96D385' 
DECLARE @nUID AS UNIQUEIDENTIFIER 
SET @nUID = CAST(@UID AS UNIQUEIDENTIFIER) 
PRINT @nUID 
0

兩種方法

1動態SQL

declare @a varchar(1000) 
SET @a='E1554084-7B8F-4F04-B6B3-4892E4C5687F,4B555046-152B-411D-A611-D9D507906259' 

set @a=''''+replace(@a,',',''',''')+'''' 

declare @sql varchar(8000) 
set @sql='SELECT * FROM MemberJobDetails WHERE GradeID IN ('[email protected]+')' 
exec(@sql) 

2靜態SQL

SELECT * FROM MemberJobDetails WHERE ','[email protected]+',' like '%,'+GradeID+',%' 
相關問題