2016-09-20 82 views
-1

任何人都可以帮助我正确地格式化我的SQL查询的Visual Studio,我得到一个错误,它说,在换行换行符。C#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))"; 
+1

你的第一行缺少结束引号。在提问之前阅读[问]并尝试研究这个错误。 – CodeCaster

+0

您在第一行缺少双引号 –

+0

HAVING count(master_seq)> 1'“+ yesterday +”'“,IntConnect)也看起来有些遗漏 –

回答

1

可能是你的错误进行更新因为你缺少;之前声明,应该是这样;与

最好使用StringBuilder的而不是字符串append.StringBuilder内存占用少那么字符串,因为它的初始化一次对象,而字符串占用内存为每个追加操作,因此使用更多的内存。

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.Append( “IntConnect)”)的明确;在查询中,请更新它,然后尝试

0

为什么在你的代码中混淆了很多查询,只是把sql代码放在一个View或一个Procedure下,然后在你的sql命令中执行视图或过程。

但要注意,对于一个过程中的命令将是

command.CommandType = CommandType.StoredProcedure;

这将降低所有messup

0

则可以将字符串前添加一个@符号所以那么它可以跨越多行。那么你就需要有+ "yoda yoda"到处

如果你需要注入的变量到它,那么你可以只包住整个事情string.Format

相关问题