重写的Sql我有参数如SQL语句。在运行时
SELECT *
FROM persons
WHERE id = @id
AND firstName = @firstname
OR surname = @surname
我想使用c#根据运行时提供的参数重写语句。
例子,如果在运行时,不提供@firstname
,那么我的SQL应重新写入
SELECT *
FROM persons
WHERE id = @id OR surname = @surname
这是我到目前为止所。
public class SqlRewriter
{
public string RewriteSql(List<string> passedRuntimeParameter)
{
var sql = @"SELECT * FROM persons
WHERE [email protected] AND [email protected]
or [email protected]";
/**
* todo parse the sql and compare with passedRuntimeParameter.
* todo reconstruct the sql based on parsed parameters
*/
return sql;
}
}
因此,使用ADO Sql参数 - http://csharp-station.com/Tutorial/AdoDotNet/Lesson06 – Alex 2013-04-04 12:12:33
作为一种风格把parens放在明确使更容易知道的意图。例如:WHERE ID = @ ID和(名字= @名字或姓氏= @姓) – 2013-04-04 12:14:19