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))";

c# visual studio中查询的正确格式

可能是你的错误,因为你错过了;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

包裹起来