如何解决插入语句组合逻辑
| 好的,所以我正在使用C#将信息插入数据库服务器中的表中。它基于添加到其中的一堆if语句创建SQL命令。我在使语句干净地创建时遇到问题。我了解到要在SQL Server中合并Insert语句,我们使用:INSERT INTO myTable
SELECT \'value1\',\'value2\'
UNION ALL
SELECT \'value3\',\'value4\'
UNION ALL
SELECT
etc
我的问题是对它们进行排序,以便无论通过哪个if语句,该语句都将起作用。例如,
function()
string sqltext = \"INSERT INTO myTable\"
if(cond1)
{ sqltext=sqltext + \"SELECT \'v1\',\'v2\' UNION ALL\" }
else if (cond2) {
sqltext = sqltext + \"SELECT \'v3\',\'v4\' UNION ALL\" }
在这种情况下,如果任一条件本身返回,则该语句将不起作用,因为该语句将以UNION ALL结尾。我希望这是有道理的。有什么想法吗?
解决方法
列出选择
string sqltext = \"INSERT INTO myTable\";
List<string> selectList = new List<string>();
和
if(cond1)
{
selectList.Add(\"SELECT \'v1\',\'v2\' UNION ALL\");
...
最后
string selectStatement = string.Join(\" UNION ALL \",selectList.ToArray());
sqltext = sqltext + \" \" + selectStatement;
, 生成后,从sqltext中删除\“ UNION ALL \”。
if(sqltext .Trim().EndsWith(\"UNION ALL\")) {
sqltext = sqltext.Remove(s.LastIndexOf(\"UNION ALL\"));
}
另外,作为旁注,我建议使用StingBuilder
而不是使用+
进行字符串连接。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。