`
suizhikuo
  • 浏览: 28820 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

很奇怪的一个问题,是关于sql参数化和传where in 参数的迷惑.请大伙给讲讲吧...小弟很迷糊现在. ,拉兄弟一把!!

 
阅读更多

报错的语句: strSql.Append(" AND cu.CurrentSalesMan in (@CurrentSalesMans)");

db.AddParameter("@CurrentSalesMans", GetCommaPartionUserIDs(CurrentSalesMan));

错误提示:Conversion failed when converting the nvarchar value '1,2,3,4,5,6,9,12,13,15,26,27,28,29' to data type int.

可以运行的语句: strSql.Append(" AND cu.CurrentSalesMan in (" + GetCommaPartionUserIDs(CurrentSalesMan) + ")");

cu.CurrentSalesMan 是 Int 类型.

GetCommaPartionUserIDs(CurrentSalesMan)的结果是:"1,2,3,4,5,6,9,12,13,15,26,27,28,29"

我的问题是为什么参数化的那条语句不能运行.而拼接的语句能运行呢?

分享到:
评论

相关推荐

    Sql Server参数化查询之where in和like实现详解

    Sql Server参数化查询之where in和like实现详解 在Sql Server中,参数化查询是提高查询性能和防止SQL注入攻击的有效方法之一。其中,where in和like是两个常用的查询条件,然而它们的参数化实现却不是那么简单。...

    SQL中in参数化的用法

    SQL 中 IN 参数化的用法详解 在 SQL 中,对于 IN 操作符的使用是非常常见的...我们可以使用参数化查询来实现 where in 和 like 的参数化查询,提高 SQL 的查询性能和安全性。但是需要根据实际情况选择合适的解决方案。

    SqlServer参数化查询之where in和like实现详解

    本文主要讨论如何实现`WHERE IN`和`LIKE`的参数化查询,这两种操作在数据库查询中非常常见,尤其是在处理列表或者模糊匹配时。 首先,我们来看`WHERE IN`的参数化查询。通常,开发人员会直接将参数值拼接进SQL字符...

    C#参数化查询,避免SQL注入

    为了解决这个问题,C#提供了一种有效的方法——参数化查询,这是一种安全且高效的方式来执行数据库操作,能有效地防止SQL注入攻击。 参数化查询的核心思想是将SQL语句和实际的值分离,通过占位符(如`?`或`@param`...

    SQL存储过程IN参数的解决办法

    ### SQL存储过程IN参数的解决办法 #### 方法一:使用临时表进行参数处理 此方法主要利用了SQL Server中的临时表来实现对多个输入参数的处理。具体步骤如下: 1. **定义变量**:首先定义了一个`nvarchar(200)`类型...

    SQL WHERE IN参数化编译写法简单示例

    在SQL查询中,`WHERE IN`子句是一个非常常见的用法,它允许我们根据指定的一组值来筛选数据。然而,直接将这些值拼接到SQL语句中可能会导致安全问题,比如SQL注入。因此,参数化编译写法是推荐的最佳实践。下面我们...

    sql语句中用问号代替参数

    例如,以下是一个简单的参数化SELECT语句: ```sql SELECT * FROM Users WHERE username = ? ``` 在这个例子中,`?`是一个参数占位符,它的实际值将在执行查询之前由程序提供。 ### 为什么使用问号参数 1. **防止...

    SQLServer2008参数化查询[参照].pdf

    参数化查询的核心在于,通过使用参数而不是直接的值,SQL Server能够创建一个通用的查询计划,这个计划可以适应不同的输入值,而无需为每次执行都生成新的计划。 1. 参数化查询的定义: 参数化查询是T-SQL查询的一...

    SqlServer:使用IN()子句C#进行参数化查询

    标题中的“SqlServer:使用IN()子句C#进行参数化查询”指的是在SQL Server数据库中,使用C#编程语言来构建一个参数化的查询,该查询涉及到SQL的IN操作符。IN操作符允许我们在WHERE子句中指定一个值列表,查询满足...

    SqlServer参数化查询之where in和like实现之xml和DataTable传参介绍

    当涉及到参数化查询时,尤其是在WHERE IN子句中,XML可以作为一个高效且灵活的参数传递方式。通常,如果你有一个包含多个值的列表,比如一个用户ID列表,你可以将这些值封装到一个XML字符串中,然后通过XML参数传递...

    SQL语言参数实例大全三.

    本资源集“SQL语言参数实例大全三”显然是一个全面介绍SQL参数使用的教程集合,包括多个示例和详尽的注释,旨在帮助读者深入理解和应用SQL参数。 1. **SQL参数基础**: SQL参数通常用于存储过程或函数中,它们允许...

    com.microsoft.sqlserver.jdbc.SQLServerDriver

    2. `sqljdbc_auth.dll`(Windows)或`libsqljdbc_auth.so`(Linux / macOS):这是一个身份验证库,支持集成Windows身份验证(Kerberos和NTLM)。如果需要使用此功能,需要将该库放在系统路径中或者指定路径。 3. `...

    sqlservr.exe和sqlos.dll

    1、正常安拆任一版本的SQL Server 2005...(补钉可以网高卑载,是一个exe格局的可施止文件,真践上就是一个更新硬件包,也可叫补钉,只是叫法不一样)。 7、连接SQL服务器时可能会碰到下面所示的弊端(红叉弊端)。

    RedGate.SQL.Prompt.v.5.1.8.2完美破解版

    RedGate.SQL.Prompt.5.1.8.2最新完美破解版 Visual Studio 和 SQL Server Management Studio 均破解 RedGate SQL Prompt 5.1.8.2 SQL Prompt”充斥着的特点,采取日常工作与SQL出来的,离开你把重点放在棘手位。 ...

    SQL必知必会(第3版-PDF清晰版)part1

    第1章 了解SQL... 1 1.1 数据库基础..... 1 1.1.1 什么是数据库..... 2 1.1.2 表..... 2 1.1.3 列和数据类型..... 3 1.1.4 行..... 4 1.1.5 主键..... 4 1.2 什么是SQL... 5 1.3 动手实践..... 6 1.4 小结.......

    C#做的"参数化查询"

    下面是一个简单的示例,演示如何使用C#进行参数化查询: ```csharp using System; using System.Data.SqlClient; public class Program { public static void Main() { string connectionString = "你的数据库...

    weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型转换解决办法

    为了解决 WebLogic 下 Oracle CLOB 类型转换的问题,可以通过反射机制来调用 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 类的 `getVendorObj()` 方法,该方法可以返回一个 `oracle.sql.CLOB` 类型的对象,从而...

    MyBatis拦截器分页与动态修改SQL及其参数值

    MyBatis是一个强大的Java持久层框架,它允许开发者将数据库操作与业务逻辑分离,通过XML或注解方式定义SQL语句。在某些场景下,我们可能需要对SQL进行动态修改或者实现分页功能,这时MyBatis的拦截器机制就显得尤为...

    sql.rar_SQL 数组

    标题中的"sql.rar_SQL 数组"提示我们,这个压缩包可能包含了一个与使用数组处理SQL查询相关的VB.NET代码示例。描述中提到的“.net 使用参数读取数据库函数”以及“1.声明一个数组。2.sql参数使用@p1格式”,暗示了...

Global site tag (gtag.js) - Google Analytics