2010-02-25 5 views
0

Je sais qu'il existe déjà plusieurs questions comme celle-ci, mais je ne peux pas en trouver une qui se rapporte à mon problème.LINQ to SQL: erreur "Chaîne ou données binaires serait tronquée"

J'ai un SP déclaré comme ceci:

CREATE PROC [dbo].[SomeProc] 
(
    @param1 VARCHAR(255) 
    , @param2 INT 
    , @param3 VARCHAR(8) 
) 

Lorsque j'ajoute la procédure stockée au modèle de données, il génère la signature suivante:

int SomeProc(string param1, int? param2, string param3) 

Le problème est que je si j'utilise un paramètre de plus de 6 caractères pour param3, j'obtiens toujours l'erreur "String ou Binary Data Be Truncated". Pour moi, il semble que cela ait quelque chose à voir avec les chaînes à double octet et à octet unique, mais je n'en suis pas vraiment sûr. Il ne semble pas fonctionner avec d'autres types de données (NVarChar, Char, etc.) que ce soit ...

Quelle est la cause de cela et comment puis-je le réparer?

Répondre

2

Vérifiez les attributs de la méthode générée.

Que faites-vous d'autre dans le SP? Il se pourrait que vous obteniez cette erreur plus bas.

+2

Merci, c'était le problème. Quelque part au fond de la proc il y avait une insertion dans une table qui avait la colonne pour ce paramètre déclarée avec length = 6. – ilitirit

0

Vérifiez la longueur du champ pour ces tables en cours de mise à jour