[英]Correct format of a query for C# visual studio
任何人都可以幫助我為Visual Studio正確設置SQL查詢的格式,因為WITH提示換行符為常數,我得到了一個錯誤。
下面是我的代碼,簡而言之,它查看一個主序列,對其進行計數,如果大於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而不是字符串append.StringBuilder占用的內存少於字符串,因為它初始化對象一次,而字符串占用的每個Append操作內存,因此使用更多的內存。
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)”)仍然不清楚。 查詢中,請對其進行更新,然后嘗試
為什么要將您的代碼中的大量查詢弄亂,只需將sql代碼放在“視圖”或“過程”下,然后在sql命令中執行視圖或過程即可。
但是請注意,對於一個過程,命令將是
command.CommandType = CommandType.StoredProcedure;
這將減少所有混亂
您可以在字符串之前添加一個@
符號,以便它可以跨越多行。 然后,您到處都不需要+ "yoda yoda"
😉
如果需要向其中注入變量,則可以將整個內容包裝在string.Format
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.