2013-03-25 114 views
0

我有一个奇怪的问题,人们会认为很容易解决。基本上我创建一个字符串是这样的:C#:双回车返回当字符串只有一个输出

string temp = "SET pagesize 50000;" + Environment.NewLine + "SET linesize 120;" + Environment.NewLine + sQuery.Text + Environment.NewLine + resultsQuery; 

sQuery为更新语句和reslults查询显示结果的故障。这是结果查询。更新查询格式相似。

resultsQuery = "SELECT project_no, contact_date, SUM(CASE WHEN control_group = 'N' THEN 1 ELSE 0 END) \"CG = N\", SUM(CASE WHEN control_group = 'Y' THEN 1 ELSE 0 END) \"CG = Y\"" + "\r\n" + 
         "FROM OIC_TRACK_TEMP" + "\r\n" + 
         "WHERE job_no = " + tbJobNo.Text.Trim() + "\r\n" + 
         "AND cpm_customer_code = '" + lbClientID.Text.ToUpper() + "'" + "\r\n" + 
         "GROUP BY project_no, contact_date" + "\r\n" + 
         "ORDER BY contact_date, project_no;"; 

然后我编写查询到的命令行:

updatessh.Write(temp); 

在命令行中的输出是这样的:

SET pagesize 50000; 

SET linesize 120; 

UPDATE TABLE_NAME 

SET PROJECT_NO = 'test' 
. 
. 

我怎样才能摆脱双马车回到那里? Oracle在看到它们时会呕吐。

谢谢!

+0

为什么你需要新的线? – EJC 2013-03-25 21:52:07

+4

现在在相应的job_no字段中输入'0;从OIC_TRACK_TEMP中删除;' :) – 2013-03-25 21:52:10

+0

难道你不能像''“'一样将它附加在一起吗?也同意,在生产应用程序中这是一件非常可怕的事情。 – EJC 2013-03-25 21:54:14

回答

2

以我的经验,SQL引擎看都\r\n为换行符,所以用Environment.Newline包括他们的时候,或在Windows,\r\n,你得到两个。

2

尝试在您的sql查询中使用\ n而不是\ r \ n。

0

您可以用最终字符串中的RegEx替换加倍的回车符,或者在添加查询之前删除它。但是,如果你总是有他们 - 只是删除(不添加)+环境 NewLine