Reputation: 145940
Is there a clever way to determine which field is causing 'string or binary data would be truncated' with LINQ.
I've always ended up doing it manually by stepping through a debugger, but with a batch using 'SubmitChanges' I have to change my code to inserting a single row to find the culprit in a batch of rows.
Am I missing something or in this day and age do I really have to still use a brute force method to find the problem.
Please dont give me advice on avoiding this error in future (unless its something much cleverer than 'validate your data'). The source data is coming from a different system where I dont have full control anyway - plus I want to be lazy.
PS. Does SQL Server 2008 actually tell me the field name. Please tell me it does! I'll upgrade!
Upvotes: 11
Views: 6595
Reputation: 255
It would probably be useful to re-post/edit this tagged as linq .net
DJ - where are you getting this data you post as a proposed solution ?
The exception doesn't contain this information, so your post is pretty much useless - unless you can specify the source.
Upvotes: 0
Reputation: 335
Fire up SQL Profiler. The last query from your application should be the one that is failing.
Upvotes: 5
Reputation: 4672
Seems like they fixed this problem for the Service Pack 1 of .NET 3.5, as noted in this link: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=353232
Might want to check it out yourself.
Upvotes: 1
Reputation: 16247
Assuming you are processing a large batch of records and you don't want to (can't) validate the data before hand and you just want db constraints to catch any errors?
Change your program to catch the exception and print out the current record details to a log file or something.
Record # 9999
Caused "string or binary data would be truncated" error
Field1: "Data" Length: 55
Field2: 9999
etc.
Upvotes: -2