System.Data.SqlClient.SqlException: 將截斷字串或二進位制資料
阿新 • • 發佈:2019-01-09
問題:
“ System.Data.SqlClient.SqlException ”型別的未經處理的異常在System.Data.dll中發生。其他資訊:將截斷字串或二進位制資料
這是在做機房收費系統基本資料設定這一模組時遇到的問題。
本來在程式碼的UI層用Try……Catch捕獲到了異常,如下圖:
但沒遇到過這個問題的人,光看這個肯定也解決不了問題,於是我把Try……Catch註釋掉,找到了拋異常的詳細資訊:
解決:
一看是 “ System.Data.SqlClient.SqlException ”,想都不用想,肯定是資料庫方面的問題,經過除錯,發現向資料庫中插入的欄位值basicDataBLL.SetDate的值為“2014/6/17 星期二”:
但是我在資料庫中給這個欄位設定的資料型別為varchar(10),這不是遠遠小於“2014/6/17 星期二”所佔的空間嘛!於是果斷增加了資料型別的容量,把varchar(10)程式設計varchar(20),問題得到解決。
總結:
又進行了一番測試,在資料庫中把其他一些字串、text等型別的欄位的可儲存容量減小,也出現了這個問題,得到了一個結論:
此問題的產生原因是資料庫中的某欄位的資料型別不足以儲存將要向該欄位中插入的值的資料長度,問題出現時,將相應欄位的資料型別的長度適當增加即可。