2010-10-25 2 views
0

У меня есть следующий код в .net.гнездо динамический регистр, когда утверждения в sql 2008

foreach (string key in EntityNumbers.Keys) 
{ 

        if (EntityNumbers[key] != null) 
        { 
         e = new WebServices.Entity(); 
         e.HierarchyLevel = key; 
         e.Number = EntityNumbers[key]; 
         entities.Add(e); 
        } 
       } 

Это должно быть преобразовано в SQL в следующем формате.

declare @HierarchyLevelValue int, @HierarchyLevel nvarchar; 

SELECT * from table where 
CASE 
    WHEN @HierarchyLevel='COMPANY' THEN COMPANYNUMBER 
    WHEN @HierarchyLevel='BRANCH' THEN BRANCHNUMBER 
    WHEN @HierarchyLevel='BUSINESS' THEN BUSINESSNUMBER 
END [email protected] 

Приведенный выше код будет работать для одного объекта, но как достичь мультипликатор как

SELECT * from table where COMPANYNUMBER=100 AND BRANCHNUMBER= 1 
AND BUSINESSNUMBER= 1 

я могу сформировать окончательный запрос в виде строки и выполнить с помощью ExecuteSQL. Есть ли какой-либо метод, который позволит избежать формирования строки?

Заранее спасибо.

+0

Я не уверен, что я полностью следую. Можете ли вы включить некоторые примеры данных и то, что вы ожидаете назад? –

ответ