2009-02-27 10 views
17

SqlDbType hangi varChar (max) ile eşleşiyor? SqlDbType.VarChar 8K ile sınırlı olduğunu söylüyor, ancak bu bir belge hatası olabilir.SqlDbType hangi varChar (max) ile eşleşiyor?

+0

Şu anda 3 farklı cevap görüyorum, hangi çözümü kullandınız? – edosoft

+0

Sonunda SqlDbType öğesinin en iyi şekilde ayarlanmadığını açıkça belirledim. Kaydedilen proc değiştiğinde çok daha az hata eğilimli ve değiştirilmesi gerekmiyor. –

+2

Fakat şimdi kodunuz SP'ye her farklı uzunlukta bir dizi iletildiğinde bir yürütme planı oluşturuyor. Bu optimal değil. MSDN, aşağıdaki gibi eglasius durumları olarak -1 kullanımını gösterir. – HardCode

cevap

24

Aslında onu VarChar ile kullanabilirsiniz. Bir parametre ise, onu inşa edebilirsiniz: Yeni SqlParameter ("@ myParam", SqlDbType.NVarChar, -1)

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

+1

-1 büyüklüğünü geçmek zorunda mıyım yoksa boş bırakabilir miyim? –

+1

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

-1

Kullanım VarChar ve kümesi boyutu 2147483647 (2GB-1)

-1

Tamam ... Sonunda şunu anladım: " Dize [0]: Boyut özelliğinin geçersiz bir boyutu 0'dır." Sen sadece öylesine olarak çıktı SQL Parametre büyüklüğü parametresini ayarlamak zorunda: bu birileri yardımcı olur

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

Hope - Hrrrrrrrrr .... 2 saat boyunca bu anlamaya çalışıyorum.