Qu'est-ce que SqlDbType mappe à varChar (max)? SqlDbType.VarChar dit qu'il est limité à 8K, bien que cela puisse être une erreur de documentation.Quel SqlDbType correspond à varChar (max)?
Répondre
En fait, vous pouvez l'utiliser avec VarChar. S'il est un paramètre que vous pouvez construire avec: nouveau SqlParameter ("@ MyParam", SqlDbType.NVarChar, -1)
Dois-je passer une taille de -1 ou puis-je la laisser vide? –
question connexe http://stackoverflow.com/questions/973260/what-size-do-you-use-for-varcharmax-in-your-parameter-declaration – TheEmirOfGroofunkistan
Utilisez VarChar et taille du jeu 2147483647 (2gb-1) OK ... Enfin compris ... si vous obtenez une erreur indiquant: " Chaîne [0]: la taille de la propriété Size a une taille invalide de 0."
Vous devez simplement définir le paramètre de taille de la sortie SQL paramètre comme si:
Dim parameter As SqlParameter = New SqlParameter("@FinalImportCount", SqlDbType.NVarChar)
parameter.Direction = ParameterDirection.Output
parameter.Size = 4000
cmd.Parameters.Add(parameter)
Hope this helps quelqu'un - essaie de comprendre cela pendant 2 heures .... Grrrrr.
Actuellement, je vois 3 réponses différentes, quelle solution avez-vous réellement utilisée? – edosoft
En fin de compte, j'ai trouvé que ne pas définir explicitement le SqlDbType était la meilleure façon de procéder. Il est beaucoup moins sujet aux erreurs et ne doit pas être changé lorsque le proc stocké est modifié. –
Mais maintenant, votre code construit un plan d'exécution chaque fois qu'une chaîne de longueur différente est transmise au SP. Ce n'est pas optimal. MSDN montre à utiliser -1, comme les états eglasius ci-dessous. – HardCode