2008-11-20 2 views
10

Czy istnieje sprytny sposób na określenie, które pole powoduje "obcinanie ciągów lub danych binarnych" za pomocą LINQ.Dowolny sprytny sposób naprawienia "ciągów lub danych binarnych byłby obcinany" ostrzeżenie z LINQ

Zawsze robiłem to ręcznie, przechodząc przez debugger, ale z partią używając "SubmitChanges" Muszę zmienić mój kod, aby wstawić pojedynczy wiersz, aby znaleźć winowajcę w partii rzędów.

Czy czegoś brakuje, czy w dzisiejszych czasach, czy naprawdę muszę nadal używać metody brute force, aby znaleźć problem.

Proszę, nie udzielaj mi porad dotyczących unikania tego błędu w przyszłości (chyba że jest to coś znacznie mądrzejszego niż "sprawdź dane"). Dane źródłowe pochodzą z innego systemu, w którym i tak nie mam pełnej kontroli - i chcę być leniwy.

PS. Czy program SQL Server 2008 faktycznie informuje mnie o nazwie pola. Proszę powiedz mi, że tak! Zaktualizuję!

+0

dla zabawy: okazało się, że nazwa firmy "Ambasada Republiki Dominikańskiej w Stanach Zjednoczonych" próbuje zmieścić się w 50-znakowym polu nazwy firmy –

+3

Jak to znalazłeś? – DenNukem

+0

Wygląda na to, że to nie działa dla struktury encji. Mam nadzieję, że wkrótce to naprawią. –

Odpowiedz

-1

Zakładając, że przetwarzasz dużą partię rekordów i nie chcesz (nie możesz) sprawdzać danych przed ręką, a chcesz po prostu ograniczenia db złapać jakieś błędy?

Zmień program, aby wychwycić wyjątek i wydrukuj bieżące szczegóły rekordu w pliku dziennika lub coś podobnego.

Record # 9999 
Caused "string or binary data would be truncated" error 
Field1: "Data" Length: 55 
Field2: 9999 
etc. 
5

Odpalić program SQL. Ostatnie zapytanie z twojej aplikacji powinno być tym, które się nie udaje.

0

Prawdopodobnie byłoby przydatne do ponownego post/edit to oznaczone jako linq .net

DJ - gdzie jesteś coraz to dane stanowiska zaproponowanego rozwiązania?

Ten wyjątek nie zawiera tych informacji, więc Twój wpis jest prawie bezużyteczny - chyba że możesz podać źródło.

Powiązane problemy