2009-02-27 28 views
17

¿Qué tipo de SqlDbType se asigna a varChar (max)? SqlDbType.VarChar dice que está limitado a 8K, aunque puede ser un error de documentación.¿Qué tipo de SqlDbType se asigna a varChar (max)?

+0

Actualmente veo 3 respuestas diferentes, ¿qué solución usaste realmente? – edosoft

+0

Al final encontré que no configurar explícitamente el SqlDbType era la mejor manera de hacerlo. Es mucho menos propenso a errores y no tiene que cambiarse cuando se modifica el proceso almacenado. –

+2

Pero ahora su código está construyendo un plan de ejecución cada vez que se pasa una cadena de longitud diferente al SP. No es óptimo MSDN muestra que usa -1, como dice eglasius a continuación. – HardCode

Respuesta

24

Actualmente puede usarlo con VarChar. Si es un parámetro que se puede construir con: nueva SqlParameter ("@ miparam", SqlDbType.NVarChar, -1)

Ver: http://msdn.microsoft.com/en-us/library/bb399384.aspx

+1

¿Debo pasar un tamaño de -1 o puedo dejarlo en blanco? –

+1

pregunta relacionada http://stackoverflow.com/questions/973260/what-size-do-you-use-for-varcharmax-in-your-parameter-declaration – TheEmirOfGroofunkistan

-1

Uso VARCHAR y ajustar el tamaño a 2147483647 (2 GB-1)

-1

OK ... Finalmente descubrí esto ... si aparece un error que dice: " Cadena [0]: la propiedad Tamaño tiene un tamaño no válido de 0". Usted simplemente tiene que establecer el parámetro de tamaño de la salida de SQL de parámetros como tan:

Dim parameter As SqlParameter = New SqlParameter("@FinalImportCount", SqlDbType.NVarChar) 
parameter.Direction = ParameterDirection.Output 
parameter.Size = 4000 
cmd.Parameters.Add(parameter) 

Espero que esto ayude a alguien - estado tratando de resolver esto durante 2 horas .... grrrrr.

Cuestiones relacionadas