String Or Binary Data Would Be Truncated Hata Çözümü

String Or Binary Data Would Be Truncated, Bu hata veritabanı ile uygulama geliştirenlerin karşısına çıkan ama zamanla bu hata ile karşılaşıldığında hmm tamam deyip çözeceğiniz bir sorundur bu sorunu uygulama içerisinde nasıl aşarız bunlara değinmeye çalışacağız.

🔥 String Or Binary Data Would Be Truncated Hata Çözümü

String Or Binary Data Would Be Truncated Hatasının Çözümü

Hatanın Tam Hali

String or binary data would be truncated. The statement has been terminated.

Bu hatanın anlamı veri tabanında belirtmiş olduğunuz alanın sınırı aşıldı demektir. Yani veritabanında ki adsoyad alanınızın türü nvarchar(50) ve karakter sınırlaması olarak ta 50 karakter olarak tanımlandığını varsayalım.

Uygulama üzerinden veri girişinde 50 karakteri aşan bir adsoyad girildiğinde yukarıdaki hatayla kaşılacaksınız. bu hatayı aşmak için ise hemen çözümlere geçelim.

Bilgi

Örneklerimi SQLSERVER Üzerinden yapıcağım için farklı bir veritabanı yazılımı kullanıyorsanız belirtmiş olduğum alan türü yok diye şaşırmayın hangi veritabanını kullanıyorsanız yorum kısmına yazarsanız yardımcı olmaya çalışırım

Çözüm 1

nvarcharMAX

Herkesin kolaya kaçtığı ama benim kesinlikle önermediğim bir yöntem olan nvarchar(MAX) yöntemi ile maximum karakter girişine izin verilmektedir ama büyük projelerde hiç önermediğim bir yöntemdir bu.

Çözüm 2

Bu örnekte ise ilk bakıldığında hiçbir sorun gözükmüyor gibi evet aslında 50 karaktere kadar olan metinlerde bir problem yok 🙂 fakat 50 karakteri aştığımızda veritabanındaki alan türünü nvarchar(50) 50 karakter ile sınırlamıştık. Sizi sevmeyen, çekemeyen açığınızı arayanlara çok iyi bir malzeme vermiş oldunuz şu an.

Bu engeli aşmak için 2.Çözüm örneğindeki gibi try catch blokları arasına alarak hatayı engelleyebilirsiniz fakat bu şekilde hata verilmediği gibi işlemde yapılmıyor catch blokları arasına MessageBox.Show(“Uzun metin girdiniz”); gibi bir yazımda yanlış olur çünkü SqlException ile 100’lerce farklı hata verme olasılığı vardır.

Örnek olarak veritabanına bağlanmadığında bile mesaj ile uzun metin girdiniz demesi ne kadar mantıklı olabilir birde siz düşünün.

Çözüm 3

Benim önerebileceğim yöntem ise budur. Çünkü hem tam olarak hatanın nereden kaynaklandığını kullanıcıya belirtiyorsunuz hemde patlama olasılığını en aza indiriyorsunuz.

if koşulunda Trim() metoduyla soldaki ve sağdaki boşlukları atıp Length ile de textBox1 nesnesi içerisindeki Text(Metin)’in uzunluğunu alıyoruz.

50’den büyükse if koşulu çalışıp messagebox ile “50 karakterden uzun metin girdiniz.” uyarısı verilecek ve işlem yapmayacak. 50 karakter altında metin girdiğinde else koşulu çalışıp işleminiz yapılacak.

String Or Binary Data Would Be Truncated Makale Özeti

Aslında konunun oldukça basit bir hata olduğunu görebildiğinizi düşünüyorum ve bir daha karşılaştığınızda büyük olasılıkla bir kaynağa ihtiyaç duymadan hatayı gideceğinizi düşünüyorum. Sonuç olarak tabloda bir alan belirlerken o alana girilecek verinin maksimum boyutunu önceden öngörmek yada öngörülemeyen bir alan ise client side/server side kontroller koymakta fayda var.


📚 String Or Binary Data Would Be Truncated Benzer Makaleler


Lütfen olumlu-olumsuz tüm görüşlerinizi bana yorum yada mail yolu ile iletmeyi ihmal etmeyin.

🔗 Sosyal medya kanallarından makaleyi paylaşarak destek olursanız çok sevinirim.

👋 Bir sonraki makalede görüşmek dileğiyle.

4.4/5 - (5 votes)

Murat Öner sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et