SqlParameter方法的原理呢,就是参数化查询时,用户输入的参数仅仅作为参数而永远不会作为查询语句的一部分
什么意思呢?直白的讲,参数化之后,用户输入的东西仅仅的SQL语句的参数,在执行的时候加上 '' 它仅仅作为参数,不会变成SQL逻辑语句的一部分。
第一种方式
var parameters = new { UserName = username, Password = password };var sql = "select * from users where username = @UserName and password = @Password";var result = connection.Query(sql, parameters);
第二种方式
public List<Evaluation_SelfAssessment_details_ChildEntity> GetChildListByIndexIds(int selfId, List<int> indexIds){DynamicParameters Parameters = new DynamicParameters();Parameters.Add("SelfId", selfId);Parameters.Add("indexIds", indexIds);string sql = @"SELECT a.id,a.IndexId,a.ChildId,a.Indexvalue_Code,a.IndexvalueFROM [dbo].[Evaluation_SelfAssessment_details_Child] a WHERE a.SelfId=@SelfId AND a.IndexId IN @indexIds ";return _Respository.GetListWithSql(sql, Parameters);}