[英]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.