У мене ця проблема нещодавно. Я зберігав повідомлення "статус" у полі DB nvarcharMAX, яке містить 4000 символів. Однак мої повідомлення про стан нарощувались і вражали виняток.
Але це був не простий випадок усічення, оскільки довільне усічення осиротіло б частиною повідомлення про стан, тому мені дійсно потрібно було "скоротити" в послідовній частині рядка.
Я вирішив проблему, перетворивши рядок у масив рядків, видаливши перший елемент, а потім відновивши у рядок. Ось код ("CurrentStatus" - рядок, що містить дані) ...
if (CurrentStatus.Length >= 3750)
{
string[] statusArray = CurrentStatus.Split(new string[] { "." }, StringSplitOptions.None)
.Skip(1).ToArray();
CurrentStatus = (string.Join(".", statusArray))
.Replace("\\r\\n", Environment.NewLine);
}
Сподіваюся, це допоможе комусь.