sql = " select count(*) from T_User where  Name=@Name"; 
            DbCommand cmd = db.GetSqlStringCommond(sql); 
            db.AddInParameter(cmd, "@Name", DbType.String, LoginName); 
            count = Convert.ToInt32(db.ExecuteScalar(cmd)); 
这样写和传统的
string.Format("sql{0}", 变量);
有什么差别哪种好点

解决方案 »

  1.   

    在ORACLE中当然是参数的效率高啦。
    因为在执行一次带参数的语句之后,Oracle对Sql就编译一次,之后再执行相同的语句,就不会编译,效率大大提高。
    而不带参数的执行,则每执行一次,Oracle都对Sql编译一次。
      

  2.   

    没什么差别。FORMAT只不过让他多转化一次而已
    ,就好像你直接给文本框赋值
    this.textbox.text='sss'
    有的人偏不这样
    非要string a="sss"
    this.textbox.text=a;那还不是一样的吗
      

  3.   

    我也想这么说。。写存储过程
    还不行。。就一定这种
       DbCommand cmd = db.GetSqlStringCommond(sql); 
    实在没怎么看过没办法他是老大
      

  4.   

    参数形式的好,官方推荐,我了解的有两个比较实际的好处:1,可以有效的防止SQL注入.
    2,可以帮你进行传入参数的类型检查.