很奇怪的问题,以前写好的程序,在写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")
------解决思路----------------------
其实不如这样:
string.Replace("\r"," ").Replace("\n"," ")
不管哪种数据库,空格是保证认识的,而且空格多还是少是没有区别的,只要关键字之间都用空格区分开不要连接在一起就行