2017-04-07 65 views
-2

在C#代碼中,我有一個字符串已連接在一起構建SQL插入語句,然後傳遞到存儲過程並運行。 問題是我在連接字符串中有一個字段,稱之爲Salary,它是數據庫中的一個數字。但是,由於它是用C#代碼構建的,所以它顯然是一個字符串。在SP插入時出現錯誤,Error converting data type varchar to numeric。創建的大插入字符串一次在SP中運行,因此我無法檢查SP中的單個值。而且我無法使Salary =字符串null,因爲它只是插入字符串「null」而不是空值。如何將null插入到SQL字符串中

+0

可以粘貼你的代碼?通常它會像'set @sql ='select someColumn'+ cast(intColumn as varchar(16))+'from sometable'' – scsimon

+1

顯示代碼而不是描述它 –

+2

首先我不得不說,請嘗試使用正確的SqlCommands和SqlParameters。其次,你是在這個數字上加單引號嗎? – Crowcoder

回答

2

您需要像這樣在代碼中添加一些邏輯。

if string.IsNullOrEmpty(Salary) 
{ 
    MyParameter = DBNull.Value; 
} 
else 
{ 
    MyParameter = int.Parse(Salary); 
} 
+0

DBNull.Value不會在sql的字符串中工作。 – Crowcoder

+0

UGH!我沒有意識到他們喜歡sql注入並且完全錯誤。 –

1
MyParameter = string.IsNullOrEmpty(Salary) ? (object)DBNull.Value : Salary; 
相關問題