簡體   English   中英

SQLException:將數據類型varchar轉換為數值時出錯

[英]SQLException: Error converting data type varchar to numeric

我很可能在這里錯過了一些簡單的東西,因為我對此很陌生,但是我無法弄清楚。 我有一個C#應用程序,它需要一些用戶輸入的數據並更新SQL Server數據庫。 我要更新的數據庫字段之一稱為“ TransectLength”,其數據類型為“ decimal(5,1)”。 SQL看起來像這樣:

string updateSQL = "UPDATE " + table1 + " SET TransectLength = NULLIF(@tl, '') WHERE ObjectID = @oid";
SqlCommand cmd = new SqlCommand(updateSQL, conn); 

參數@tl:

cmd.Parameters.AddWithValue("@tl", dr["TransectLength"]);

dr是一個DataRow。 dr [“ TransectLength”]的值為2.5,類型為object {decimal}。 當我嘗試:

cmd.ExecuteNonQuery();

我收到將數據類型varchar轉換為數字的SQL異常錯誤。 請參閱下面的參數@tl。 SqlDbType為十進制。 如果我沒有為TransectLength輸入任何內容(即dr [“ TransectLength”]的值為{}),那么更新查詢就可以正常工作,並適當地輸入sql NULL值。 我也試過這個:

cmd.Parameters.AddWithValue("@tl", Convert.ToDecimal(dr["TransectLength"]));

但是什么都沒有改變。 謝謝你的幫助。 在此處輸入圖片說明

NULLIF(@tl, '')更改為ISNULL(@tl, 0.0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM