簡體   English   中英

獲取“字符串或二進制數據將被截斷。 插入新記錄時,該語句已終止”

[英]Getting “String or binary data would be truncated. The statement has been terminated” when inserting new record

當我嘗試插入數據庫時​​出現此錯誤。 我已經檢查了大小是否足夠長,以及屬性是否正常。 這是我的SQL布局。

schoolID   int (Primary Key)
schoolNaam varchar(50)
stad       varchar(30)

我的插入代碼:

BLSchool blSchool = new BLSchool();
List<School> scholen = blSchool.GetAll();
School school = new School();
school.SchoolNaam = schoolnaam.ToString();
school.Stad = schoolstad.ToString();
int schoolID = blSchool.InsertSchool(school);
db.Schools.InsertOnSubmit(school);
db.SubmitChanges();
return school.SchoolID;

不,您沒有檢查尺寸或至少不正確。 schoolnaam的長度超過50個字符,或者schoolstad的長度超過30個字符。

為避免該錯誤,請使用以下代碼:

school.SchoolNaam = new string(schoolnaam.ToString().Take(50).ToArray());
school.Stad = new string(schoolstad.ToString().Take(30).ToArray());

如果值較長,則只需要前50/30個字符。

字符串太長,您只是沒有找到問題。

可能您應該只增加列的長度。 varchar占用所需的空間。 不會浪費空間來增加尺寸。

您可能還應該在客戶端上驗證字符串,並向用戶顯示錯誤。

不要僅僅截斷它,因為這會破壞數據而不會通知用戶。

暫無
暫無

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

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