Tôi có vấn đề này gần đây. Tôi đang lưu trữ một thông báo "trạng thái" trong trường nvarcharMAX DB có 4000 ký tự. Tuy nhiên, các thông báo trạng thái của tôi đã được xây dựng và đạt được ngoại lệ.
Nhưng đây không phải là một trường hợp đơn giản của việc cắt ngắn vì một sự cắt ngắn tùy ý sẽ thiếu một phần của thông báo trạng thái, vì vậy tôi thực sự cần phải "cắt ngắn" ở một phần nhất quán của chuỗi.
Tôi đã giải quyết vấn đề bằng cách chuyển đổi chuỗi thành một mảng chuỗi, xóa phần tử đầu tiên và sau đó khôi phục thành chuỗi. Đây là mã ("CurrentStatus" là chuỗi chứa dữ liệu) ...
if (CurrentStatus.Length >= 3750)
{
string[] statusArray = CurrentStatus.Split(new string[] { "." }, StringSplitOptions.None)
.Skip(1).ToArray();
CurrentStatus = (string.Join(".", statusArray))
.Replace("\\r\\n", Environment.NewLine);
}
Hy vọng nó sẽ giúp ai đó ra ngoài.