我有一个执行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
执行命令后查询几乎总是......正是你在通过小巧玲珑不替代参数标记 - 这将是一个SQL注入漏洞。即使利用监视SQL流量(微型分析器,SQL服务器探查等)工具:图示将包括参数的令牌的命令,与单独发送的参数。
迷你探查欺骗此,由(显示屏)前面加上看起来像参数declare
语句的命令,所以你可以在SSMS中运行它 - 它将使你是这样的:
declare @codigoidioma int = 1;
select teste as codigo ..... where codigoidioma = @codigoidioma
但要注意,它仍然参数(ISH)甚至在这里。
在短小精悍的具体情况,也有一些例外“这将是你在通过”一般规则,关于某些特定情况下,如in @foo
(东西像List<int>
一个foo
),它会产生一个适当的参数扩张,但它仍然会进行参数设置。