2009-10-15 5 views
0

J'ai une instruction d'insertion avant ces mises à jour: Sur db.sumbitchanges, l'erreur est affichée.Les données chaîne ou binaires seraient tronquées. L'instruction a été terminée

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

Répondre

4

Il semble que ce soit top.lastpost ou ca.lastpost (ou les deux) ne dispose pas de suffisamment d'espace sur le db pour tenir username + maxdate.

Vérifiez le nombre de caractères autorisés par les champs de la base de données et modifiez le champ pour autoriser plus de caractères ou réduire la longueur de la sortie. Vous ne stockez peut-être que username + maxdate.ToString("yyyy-MM-dd") ou username + maxdate.ToString("yyyy-MM-dd HH:mm:ss")?

0

La chaîne est plus longue que la taille de la colonne DB, de sorte que les données résultantes ne rentrent pas à l'intérieur.

1

Je suppose à la fois Topic.lastpost et Category.lastpost sont string s, et username + maxdate concatène deux chaînes. Le résultat pourrait être un peu plus grand que ce qui entrerait dans la colonne lastpost dans la table respective.

Questions connexes