2013-05-15 137 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服務器管理.. 在工具 - 選項 - 設計師 - 取消選中「防止保存更改...」

相關問題