c# visual studio中查询的正确格式
本文关键字:格式 查询 visual studio | 更新日期: 2023-09-27 18:07:45
谁能帮我正确格式化我的sql查询Visual Studio,我得到一个错误,它说换行常数。
下面是我的代码,代码简而言之,它看一个主序列,计算它,如果有多于1的split_dlv将被更新为值1。
SqlCommand cmdUpd2 = new SqlCommand(" WITH cte AS(
+ "SELECT master_seq"
+ "FROM[ZS_CS_EVO_Integration].[dbo].[CS_Consolidation]"
+ "where delivery_date = yesterday and[master_seq] <> 0"
+ "GROUP BY master_seq"
+ " HAVING count(master_seq) > 1 '" + yesterday + "'", IntConnect)
+ "UPDATE c"
+ "SET[split_dlv] = 1"
+ "FROM[dbo].[CS_Consolidation] c"
+ "INNER JOIN cte t"
+ "ON t.master_seq = c.master_seq and c.delivery_date = yesterday))";
可能是你的错误,因为你错过了;With语句,应该像;With
最好使用StringBuilder而不是string append。StringBuilder比string占用更少的内存,因为它只初始化一次对象,而string每次追加操作都占用内存,因此占用更多的内存。
StringBuilder sb=new StringBuilder();
sb.Append(";WITH cte AS(");
sb.Append(" SELECT master_seq");
sb.Append(" FROM[ZS_CS_EVO_Integration].[dbo].[CS_Consolidation]");
sb.Append(" where delivery_date = yesterday and[master_seq] <> 0");
sb.Append(" GROUP BY master_seq");
sb.Append(" HAVING count(master_seq) > 1 '" + yesterday + "'");
sb.Append(" , IntConnect)");
sb.Append(" UPDATE c");
sb.Append(" SET[split_dlv] = 1");
sb.Append(" FROM[dbo].[CS_Consolidation] c");
sb.Append(" INNER JOIN cte t");
sb.Append(" ON t.master_seq = c.master_seq and c.delivery_date = yesterday))");
SqlCommand cmdUpd2 = new SqlCommand(sb.ToString());
注意:我仍然不清楚使用sb。附加(",IntConnect)");查询,请更新,然后尝试
为什么在你的代码中弄乱了很多查询呢?只要把sql代码放在视图或过程下,然后在sql命令中执行视图或过程。
但是请注意,对于一个过程,命令将是
命令。CommandType = CommandType. storedprocedure;
这将减少所有的messsup
您可以在字符串之前添加@
符号,以便它可以跨多行。那么你就不需要到处都有+ "yoda yoda"
如果你需要在里面注入变量那么你可以把整个内容用string.Format