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.Indexvalue
FROM [dbo].[Evaluation_SelfAssessment_details_Child] a WHERE a.SelfId=@SelfId AND a.IndexId IN @indexIds ";
return _Respository.GetListWithSql(sql, Parameters);
}