当前位置: 代码迷 >> C# >> vs2010中,用String.Format(@)写sql语句出错啊求高手啊
  详细解决方案

vs2010中,用String.Format(@)写sql语句出错啊求高手啊

热度:310   发布时间:2016-05-05 05:06:26.0
vs2010中,用String.Format(@)写sql语句报错啊。求高手啊。
很奇怪的问题,以前写好的程序,在写sql语句时,有些是用String.Format(@,有些是StringBuilder strSql = new StringBuilder();来写的,以前都是好的,这次重做了下系统。但现在String.Format(@的sql语句都会报错,调试后发现是,语句在换行时自动带上了换行符 \r\n ,也就执行报错了。
如:String.Format(@"UPDATE S_SUPPLY  SET NAME ='1', ABBR ='2', ORG_TYPE ='3', ADDS ='4', 
        SH ='5', YHZH ='6', LXR ='7', YB ='8'“);

程序执行时sql语句变成了:UPDATE S_SUPPLY  SET NAME ='1', ABBR ='2', ORG_TYPE ='3', ADDS ='4',  \r\n 
        SH ='5', YHZH ='6', LXR ='7', YB ='8'

换行出带上了 \r\n 换行符,执行就报错。怎么会这样呢?求赐教!!!!!!!!
------解决思路----------------------
不知道你为什么 后面换行要使用+  @  其实就可以制动实现 你下一行的吧。。。。。反正我写的时候就是这样:

string.format(@"........
                             ........
                            ........");
------解决思路----------------------
[email protected],不过放到数据库里应该是可以执行的才对
你还是找找重做的系统和之前到底有什么区别吧
------解决思路----------------------
数据库是oracle?oracle不认识windows的换行,你得.Replace("\r\n","\n")
------解决思路----------------------
引用:
数据库是oracle?oracle不认识windows的换行,你得.Replace("\r\n","\n")

其实不如这样:
string.Replace("\r"," ").Replace("\n"," ")
不管哪种数据库,空格是保证认识的,而且空格多还是少是没有区别的,只要关键字之间都用空格区分开不要连接在一起就行
  相关解决方案