SQL Server 动态SQL的拼接技巧
2022-11-12 09:48:45
内容摘要
这篇文章主要为大家详细介绍了SQL Server 动态SQL的拼接技巧,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!常见的误解有:1. 只用 ado.net
文章正文
这篇文章主要为大家详细介绍了SQL Server 动态SQL的拼接技巧,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
常见的误解有:1. 只用 ado.net ,无法进行动态 SQL 拼接。2. 有几个动态参数,代码的重复量就成了这些参数的不同数量的组合数,动态参数越多,重复量越大。对于第二个问题,以下的错误代码为其证据:代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <code> if (id>0 && string.IsNullOrEmpty(name)) { command.CommandText = "select * from t1 where id=?" ; command.Parameters.Add(id); } if (id<=0 && !string.IsNullOrEmpty(name)) { command.CommandText = "select * from t1 where name=?" ; command.Parameters.Add(name); } if (id<=0 && !string.IsNullOrEmpty(name)) { command.CommandText = "select * from t1 where id=? and name=?" ; command.Parameters.Add(id); command.Parameters.Add(name); } </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <code> string sql = "select * from t1 where 1=1" ; if (id != null) { sql += " and id=?" ; addParameterValue(cmd,id); } if (!string.IsNullOrEmpty(name)) { sql += " and name=?" ; addParameterValue(cmd,name); } command.CommandText = sql; </code> |
代码如下:
1 2 3 | <code> if (id>0 && string.IsNullOrEmpty(name)) </code> |
代码如下:
1 2 3 | <code> if (id != null) </code> |
代码如下:
1 2 3 4 5 6 | <code> DbParameter p = cmd.CreateParameter(); p.ParameterName = "@XXX" ; p.Value = TTT; cmd.Parameters.Add(p); </code> |
注:关于SQL Server 动态SQL的拼接技巧的内容就先介绍到这里,更多相关文章的可以留意
代码注释