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);为了公平,所以写法一二都是用了三个句子写成,请问写法一和写法二,哪个效率高点?

解决方案 »

  1.   

    个人感觉第一个效率高.replace的按顺序查找
      

  2.   

    都差不多,不过对于这种情况我一般用Format来做,比如:
    strSql = "delete from admin where id = {0} and UserName = '{1}'";
    strSql = string.Format(strSql,  NoteId,userName);
      

  3.   

    如果UserName里面有单撇号呢? 这么处理会不会有问题?我都是用存储过程做的
      

  4.   

    我也和hbxtlhx一样,喜欢用string.Format
      

  5.   

    这种情况基本都是String.Format来解决。没太考虑到底谁的效率更高。
      

  6.   

    hbxtlhx(平民百姓)的方法,我喜欢。
      

  7.   

    用stringBuilder再测试一下看看。
      

  8.   

    hbxtlhx(平民百姓)的方法,我喜欢。
      

  9.   

    都一样,一个sql还用效率高不高,2个字符串相加效率高
      

  10.   

    第二个当然慢 因为Replace要有一个查找匹配的过程
    string.Format 也应该不会快于第一个,内存分配次数也>=2
    平民大哥 string.Format 的原理是什么?能给说说吗?(很感兴趣)
      

  11.   

    string NoteId = "1";
    string userName = "ddddd"; strSql = "delete from admin";

    strSql = String.Concat(strSql, " where id = ", NoteId);
    strSql = String.Concat(strSql, " and UserName = '", userName, "'"); string SqlStr = string.Empty; SqlStr = "delete from admin where id = {$id} and UserName = '{$UserName}'"; SqlStr = SqlStr.Replace("{$id}", NoteId); SqlStr = SqlStr.Replace("{$UserName}", userName); string strSql1 =string.Empty;
    strSql1 = "delete from admin where id = {0} and UserName = '{1}'";
    strSql1 = string.Format(strSql,  NoteId,userName);