2013-05-15 133 views
1

假设我有一个表用3倍柱CSHARP ado.net错误数据类型为nvarchar转换为数字

ID  Int 
    Name  nvarchar(63) 
    Age  Int 

,我有一个程序,以搜寻所有行匹配关键字输入。

Create Procedure usp_Search 

@KeyWord nvarchar(63) 
as 
begin 
    SEKECT * FROM TblPersonal 
      WHERE 
        @KeyWord IS NULL 
       OR @KeyWord = Age 
       OR Name Like N'%'[email protected]+'%' 
end 

,当我与SQL管理工具测试它做工精细

DECLARE @return_value int 

EXEC @return_value = [dbo].[usp_Search] 
     @KeyWord = NULL 

但是当执行在ADO.net并通过DBNull.Value到的SqlParameter我有错误

“错误的数据转换键入nvarchar到数字“

谁能告诉我的问题是在这条线是什么SQL管理工具

回答

1

的不同ADO.net与环境:

OR @KeyWord = Age 

Age是一个整数,@KeyWord是字符串。为了防止收到错误,转换数据类型的age成字符串,

OR @KeyWord = CAST(Age AS NVARCHAR(5)) 
-1

尝试配置SQL服务器管理.. 在工具 - 选项 - 设计师 - 取消选中“防止保存更改...”

相关问题