看看下面的while循环.
sqlDataReader dr; while (dr.Read()) { Response.Write("insert into test values(N'"+dr[0]+"',N'"+dr[1]+"'),<br>"); }
我只是在最后(在那之前)用逗号打印一些东西.但是最后一次打印时,我不想要那个逗号.
如何找出这个循环最后一次执行?这样我就可以通过修改它来避免这个逗号被打印出来.
解决方法
一般来说,不可能不知道你是否在while循环的最后一次迭代.
您可以使用 loop-and-a-half,而不是最后一个,但循环的第一次运行是不同的,如下所示:
您可以使用 loop-and-a-half,而不是最后一个,但循环的第一次运行是不同的,如下所示:
sqlDataReader dr = ...; if (dr.Read()) { //no comma Response.Write("insert into test values(N'"+dr[0]+"',N'"+dr[1]+"')"); } while (dr.Read()) { //put in a comma / break for the prevIoUs item Response.Write(",<br>insert into test values(N'"+dr[0]+"',N'"+dr[1]+"')"); }
但是,最好只使用StringBuilder在内存中构造字符串,然后立即响应所有响应.如下所示:
StringBuilder sb = new StringBuilder(); while (dr.Read()) { //put in a comma / break for the prevIoUs item sb.Append("insert into test values(N'"+dr[0]+"',<br>"); } sb.Remove(sb.Length-5,5); // remove the last,<br> Response.Write(sb.ToString());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。