开发者

String or binary data would be truncated. The statement has been terminated

I have an insert statement before these updates: On db.sumbitchanges the error is shown.

Topic top = (from t in db.Topics
                 where t.id == id
                 select t).SingleOrDefault();

top.lastpost = username + maxdate;


Category ca = (from c in db.Categories
             where c.categoryid == cat
             select c).SingleOrDefault();

ca.totaltopics = ca.totaltopics + 1;
ca.posts = ca.posts + 1;
ca.lastpost =开发者_高级运维 username + maxdate;
db.SubmitChanges();     


It sounds like either top.lastpost or ca.lastpost (or both) doesn't have enough space on the db to hold username + maxdate.

Check how many characters the database fields allow and either change the field to allow more characters or reduce the length of the output - perhaps only storing username + maxdate.ToString("yyyy-MM-dd") or username + maxdate.ToString("yyyy-MM-dd HH:mm:ss")?


I assume both Topic.lastpost and Category.lastpost are strings, and username + maxdate concatenates two strings. The result might be a bit bigger than what would fit into lastpost column in respective table.


The string is longer than the size of the DB column so the resulting data doesn't fit inside.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜