Hayır yanlış anlamışsın. Bunda benim eksik anlatmış olmam da etkili olmuş olabilir :)
1- Resim alanını databasede varbinary(MAX) olarak değiştir. Alanı sınırlama. Sınırlarsan dosyayı yarıda kesme ihtimalin var. Bu da bir daha o dosyaya erişemeyebilirsin demek.
2- Dosya boyutuna sınır getireceksen bunun veritabanında değil de kod tarafında veritabanına göndermeden önce kontrol et.
3- Dosyayı byte[] olarak gönder. File.ReadAllBytes("dosya.jpg") gibi bir kodla dosya byte larını alabilirsin. Çünkü sadece resmin renk kodlarına değil header bilgilerine de ihtiyacın olacak.
Not: varbinary(30) 30KB demek değildir. 30 byte demektir.