StringBuilder Append字符串导致字符串丢失

goyjgoyj 2010-04-29 01:56:52
求教各位大大,小弟在使用StringBuilder做字符串拼接时碰到了一个非常怪的问题。
我声明了一个初始的查询字符串如下:
StringBuilder sqlStr1 = new StringBuilder (省略);

该字符串在oracle中能正常运行并得到结果,下用[原始]代替。在后面我根据输入的结果做了字符串拼接:
if (!string.IsNullOrEmpty(projectNumber))
{
sqlStr1.Append(" and 开工阶段表.工程编号='"+projectNumber+"'");
}

if (!string.IsNullOrEmpty(kaigongFrom))
{
sqlStr1.Append(" and 开工阶段表.开工日期>to_date('" + kaigongFrom + "','yyyy-mm-dd')");
}

if (!string.IsNullOrEmpty(kaigongTo))
{
sqlStr1.Append(" and 开工阶段表.开工日期<to_date('" + kaigongTo + "','yyyy-mm-dd')");
}

if (!string.IsNullOrEmpty(tongzhiFrom))
{
sqlStr1.Append(" and 开工阶段表.通知日期>to_date('" + tongzhiFrom + "','yyyy-mm-dd')");
}

在运行到红色部分的时候我发现查询字符串出现了部分丢失,并没有得到我想要的结果。
而是 [原始] and 开工阶段表.开工日期>to_date('2010-04-29','yyyy-mm-dd') and 开工阶段表.开工日期to_date('2010-04-29','yyyy-mm-dd')

似乎是出现了部分字符串丢失,通过多次调试发现只要Append的字符串中有'>'符号都会出现这个奇怪的问题,但是在第一次添加开工日期的时候不会丢失,实在是不知所云。请高手指点指点。
...全文
920 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
“HTML可视化工具”跟你的“sqlStr1”有什么关系,你不会是以为随便一个字符串就是一个html吧?
wuyq11 2010-04-29
  • 打赏
  • 举报
回复
单步跟踪数据
sqlStr1.Append(string.IsNullOrEmpty(projectNumber)?"":" and 开工阶段表.工程编号='"+projectNumber+"'");
goyjgoyj 2010-04-29
  • 打赏
  • 举报
回复
可能是HTML工具里面把'>'和前面的一个'<'合起来作为tag处理了吧。
不清楚这个工具是什么原理。
轮销桂魄 2010-04-29
  • 打赏
  • 举报
回复
你把条件先去掉,然后一个条件一个条件的加上去进行测试,问题可能就找到了!
vrhero 2010-04-29
  • 打赏
  • 举报
回复
你眼睛看到的未必是真相...这只能说是查看工具HTML格式化的问题,和StringBuilder无关...
goyjgoyj 2010-04-29
  • 打赏
  • 举报
回复
这真是一件奇妙的事情,CSDN不让贴图,没办法贴上来
goyjgoyj 2010-04-29
  • 打赏
  • 举报
回复
VS08 Pro 中文
mngzilin 2010-04-29
  • 打赏
  • 举报
回复
你是什么版本的VS,我在2008下正常
goyjgoyj 2010-04-29
  • 打赏
  • 举报
回复
多谢,不过我发现这貌似是VS08里面HTML可视化工具的一个显示BUG,用文本可视化工具看就没有问题。。。
jietuan 2010-04-29
  • 打赏
  • 举报
回复
sqlStr1.Append(@" and 开工阶段表.通知日期>to_date('" + tongzhiFrom + "','yyyy-mm-dd')");
试试

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧