请问这两种写法,哪个效率比较高?
String NoteId = //....;
String userName = //....;
写法一:
strSql = "delete from admin ";
strSql = String.Concat(strSql, " where id = ", NoteId);
strSql = String.Concat(strSql, " and UserName = ' ", userName, " ' ");
写法二:
strSql = "delete from admin where id = {$id} and UserName = '{$UserName} ' ";
this.SqlStr = this.SqlStr.Replace( "{$id} ", NoteId);
this.SqlStr = this.SqlStr.Replace( "{$UserName} ", userName);
为了公平,所以写法一二都是用了三个句子写成,请问写法一和写法二,哪个效率高点?
------解决方案--------------------^^|| lz的想法真好
------解决方案--------------------差不多吧。也许写法一略高一点,不过相信其差别就算是连续运行一千次也是可以忽略不计的。
------解决方案--------------------个人感觉第一个效率高.replace的按顺序查找
------解决方案--------------------都差不多,不过对于这种情况我一般用Format来做,比如:
strSql = "delete from admin where id = {0} and UserName = '{1} ' ";
strSql = string.Format(strSql, NoteId,userName);
------解决方案--------------------如果UserName里面有单撇号呢? 这么处理会不会有问题?
我都是用存储过程做的
------解决方案--------------------测试:
循环9000次
1:2秒
2:6秒
菜鸟不懂
楼下的解释下
------解决方案--------------------是900000次循环
------解决方案--------------------我也和hbxtlhx一样,喜欢用string.Format
------解决方案--------------------这种情况基本都是String.Format来解决。没太考虑到底谁的效率更高。
------解决方案--------------------采用@参数方式更好点
------解决方案--------------------hbxtlhx(平民百姓)的方法,我喜欢。
------解决方案--------------------用stringBuilder再测试一下看看。
------解决方案--------------------区别不大
------解决方案--------------------就这两种,我个人倾向与第二种
实际使用中用参数和存储过程
------解决方案--------------------hbxtlhx(平民百姓)的方法,我喜欢。
------解决方案--------------------都一样,一个sql还用效率高不高,2个字符串相加效率高
------解决方案--------------------第二个当然慢 因为Replace要有一个查找匹配的过程
string.Format 也应该不会快于第一个,内存分配次数也> =2
平民大哥 string.Format 的原理是什么?能给说说吗?(很感兴趣)