字符串或二进制数据将被截断。该语句已终止

时间:2009-10-15 12:25:36

标签: linq-to-sql

我在这些更新之前有一个insert语句: 在db.sumbitchanges上显示错误。

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();     

3 个答案:

答案 0 :(得分:4)

听起来top.lastpostca.lastpost(或两者)在数据库上没有足够的空间来容纳username + maxdate

检查数据库字段允许的字符数,并更改字段以允许更多字符或减少输出长度 - 可能只存储username + maxdate.ToString("yyyy-MM-dd")username + maxdate.ToString("yyyy-MM-dd HH:mm:ss")

答案 1 :(得分:1)

我假设Topic.lastpostCategory.lastpost都是stringusername + maxdate连接两个字符串。结果可能比相应表中的lastpost列更大。

答案 2 :(得分:0)

字符串长于DB列的大小,因此结果数据不适合内部。