Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 错误:将varchar值转换为INT时转换失败_Sql Server - Fatal编程技术网

Sql server 错误:将varchar值转换为INT时转换失败

Sql server 错误:将varchar值转换为INT时转换失败,sql-server,Sql Server,我试图通过以下代码(第1页)将一些参数从一页传递到另一页: 在第2页,我有一个GridView来显示结果,下面是我的SqlDataSource连接: <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>" SelectCommand="SELECT [CaseNumber], [Name] F

我试图通过以下代码(第1页)将一些参数从一页传递到另一页:

在第2页,我有一个GridView来显示结果,下面是我的SqlDataSource连接:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>" SelectCommand="SELECT [CaseNumber], [Name] FROM [Files] WHERE
    (@Name IS NULL OR Name LIKE '%' + @Name + '%') AND 
    (@CaseNumber IS NULL OR CaseNumber LIKE '%' +  @CaseNumber + '%') AND 
    (@paid IS NULL OR  paid BETWEEN '@paidfrom' AND '@paidto' ) AND);"
    CancelSelectOnNullParameter="False">

我有同样的错误,甚至当我尝试转换函数!
有人能给我点睛之笔吗?

案例编号是整数吗?不能对整型数据类型执行这样的条件检查。您必须强制转换为varchar才能进行这样的检查。CAST(CaseNumber为varchar(10))类似于……是的CaseNumber为int。但问题实际上是关于@Paidfrom和@Paidto!以下是我的错误:将varchar值'@Paidfrom'转换为数据类型int.LOL时,转换失败。您将参数包装在单引号中。它应该是“介于@paidfrom和@paidto之间”。否则它使用的是字符串文字而不是参数。我认为
@paidfrom
@paidto
周围的单引号将它们转换为字符串文字。显然,您没有定义该参数。您可以共享数据源的参数定义吗?我看到您已经通过查询字符串将值传递给页面,但是我们看不到您在哪里设置sql参数。CaseNumber是int吗?不能对整型数据类型执行这样的条件检查。您必须强制转换为varchar才能进行这样的检查。CAST(CaseNumber为varchar(10))类似于……是的CaseNumber为int。但问题实际上是关于@Paidfrom和@Paidto!以下是我的错误:将varchar值'@Paidfrom'转换为数据类型int.LOL时,转换失败。您将参数包装在单引号中。它应该是“介于@paidfrom和@paidto之间”。否则它使用的是字符串文字而不是参数。我认为
@paidfrom
@paidto
周围的单引号将它们转换为字符串文字。显然,您没有定义该参数。您可以共享数据源的参数定义吗?我看到您已经通过查询字符串将值传递给页面,但是我们看不到您在哪里设置sql参数。
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>" SelectCommand="SELECT [CaseNumber], [Name] FROM [Files] WHERE
    (@Name IS NULL OR Name LIKE '%' + @Name + '%') AND 
    (@CaseNumber IS NULL OR CaseNumber LIKE '%' +  @CaseNumber + '%') AND 
    (@paid IS NULL OR  paid BETWEEN '@paidfrom' AND '@paidto' ) AND);"
    CancelSelectOnNullParameter="False">