得到与查询输出短小精悍执行

问题描述 投票:1回答:1

我有一个执行SQLSERVER查询错误例外,我想用指定的参数执行的查询与短小精悍的访问代码:

StringBuilder sql = new StringBuilder();
sql.AppendLine(" SELECT " + campoChave + " AS CODIGO, ");
sql.AppendLine("        " + campoSelecao + " AS DESCRICAO ");
sql.AppendLine("   FROM " + tabela);
sql.AppendLine("   where codigoidioma = @codigoIdioma");
sql.AppendLine("  ORDER BY " + campoSelecao);

IEnumerable entities2 = conexao.Query<ComboBoxGenerico>(sql.ToString(), new { codigoIdioma = 1 });

这个代码是错误我想用命令执行短小精悍后得到查询

例如:选择测试代码.....其中codigoidioma = 1

@codigoIdioma ---> 1

parameters output dapper
1个回答
0
投票

执行命令后查询几乎总是......正是你在通过小巧玲珑不替代参数标记 - 这将是一个SQL注入漏洞。即使利用监视SQL流量(微型分析器,SQL服务器探查等)工具:图示将包括参数的令牌的命令,与单独发送的参数。

迷你探查欺骗此,由(显示屏)前面加上看起来像参数declare语句的命令,所以你可以在SSMS中运行它 - 它将使你是这样的:

declare @codigoidioma int = 1;
select teste as codigo ..... where codigoidioma = @codigoidioma

但要注意,它仍然参数(ISH)甚至在这里。

在短小精悍的具体情况,也有一些例外“这将是你在通过”一般规则,关于某些特定情况下,如in @foo(东西像List<int>一个foo),它会产生一个适当的参数扩张,但它仍然会进行参数设置。

© www.soinside.com 2019 - 2024. All rights reserved.