我在.net中有以下代码。
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 =@HierarchyLevelValue
上面的代码适用于单个实体,但我如何实现多个像
SELECT * from table where COMPANYNUMBER=100 AND BRANCHNUMBER= 1
AND BUSINESSNUMBER= 1
我可以将最终查询形成为字符串并通过ExecuteSQL执行。 有没有什么方法可以避免形成字符串?
提前致谢。
答案 0 :(得分:0)
我认为你最好使用动态sql。 http://www.kodyaz.com/articles/tsql-sp_executesql-with-output-parameters.aspx
只是要警惕动态sql的危险。