c# – 如何找到循环执行的最后一次(dr.Read())?
发布时间:2020-12-16 01:52:33 所属栏目:百科 来源:网络整理
导读:看看下面的while循环. SqlDataReader dr;while (dr.Read()){Response.Write("insert into test values(N'"+dr[0]+"',N'"+dr[1]+"'),br");} 我只是在最后(在那之前)用逗号打印一些东西.但是最后一次打印时,我不想要那个逗号. 如何找出这个循环最后一次执行?
看看下面的while循环.
SqlDataReader dr; while (dr.Read()) { Response.Write("insert into test values(N'"+dr[0]+"',N'"+dr[1]+"'),<br>"); } 我只是在最后(在那之前)用逗号打印一些东西.但是最后一次打印时,我不想要那个逗号. 解决方法
一般来说,不可能不知道你是否在while循环的最后一次迭代.
您可以使用 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()); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读