我觉得除了查询语句用command操作以外,其他的操作还是用存储过程比较好String insertCmd = "InsertProc";
SqlCommand myCommand = new SqlCommand(insertCmd, myConnection);
myCommand.CommandType=SqlCommandType.Procedure;//这里可能会有错,总之是选择存储过程方式
myCommand.Parameters.Add(new SqlParameter("@Id", SqlDbType.NVarChar, 11));
myCommand.Parameters["@Id"].Value = au_id.Value;......

解决方案 »

  1.   

    the second method is susceptible to SQL injection attack unless you do your own filtering, otherwise, they are very similarsee
    http://www.4guysfromrolla.com/webtech/092601-1.shtml
      

  2.   

    这个写法的好处是:
    1 利用SqlCommand的参数自动检查特性过滤非法字符,
    2 避免STRING串相加的低效率工作坏处是:
    代码冗长 
      

  3.   

    使用参数的方法可以防止为数据库操作进行非法攻击,比如使用一些特殊字符来进行sql 语句的攻击。
    另外,使用参数还可以在参数的定义中进行数据的约束等。
      

  4.   

    呵呵,如果微软能够提供command类的源码,我会考虑用第一种方法,否则,我会用第二种方法,自己写一用参数调用的类来,就是自己做数据访问层