Tôi đang nhập thông tin lỗi vào bảng ErrorLog trong cơ sở dữ liệu của mình. Tôi có một lớp tiện ích để thực hiện việc này:ngắt dòng bị mất trong máy chủ sql
ErrorHandler.Error("Something has broken!!\n\nDescription");
Điều này có hiệu quả. Tuy nhiên, khi tôi cố gắng truy cập vào bảng này, ngắt dòng dường như không còn tồn tại nữa.
Nếu tôi SELECT
bảng:
SELECT * from ErrorLog ORDER BY ErrorDate
không có ngắt dòng hiện trong nhật ký. Đây là loại dự kiến, vì ngắt dòng trong hàng một hàng sẽ phá vỡ định dạng. Tuy nhiên, nếu tôi sao chép dữ liệu ra, các ký tự ngắt dòng đã bị mất và dữ liệu là tất cả trên một dòng.
Làm cách nào để có ngắt dòng trong dữ liệu ở cuối truy vấn khi tôi đặt ngắt dòng? Tôi không biết nếu chuỗi đã bị tước các ngắt dòng khi nó đi vào bảng, hoặc nếu người xem trong SQL Server Management Studio đã tước bỏ các ngắt dòng.
Loại dữ liệu của cột mà thông báo lỗi được đặt là nvarchar(Max)
, nếu điều đó tạo nên sự khác biệt.
EDIT: Thật bất ngờ, giải pháp của Pendri không hoạt động.
Dưới đây là một đoạn trích của chuỗi ngay trước khi nó đi vào máy chủ SQL:
POST /ipn/paymentResponse.ashx?installation=272&msgType=result HTTP/1.0\n\rContent-Length: 833\n\rContent-Type:
Và đây là chuỗi tương tự khi tôi giải nén nó từ người xem lưới trong SQL Server Management Studio:
POST /ipn/paymentResponse.ashx?installation=272&msgType=result HTTP/1.0 Content-Length: 833 Content-Type:
Nơi ngắt dòng phải được đặt cách nhau gấp đôi.
Bất kỳ ý tưởng nào?
Khi bạn nói ngắt dòng là vì chúng không xuất hiện trong chế độ xem kết quả lưới khi bạn chạy truy vấn từ SSMS? Tôi tin rằng SSMS dải ngắt dòng trong kết quả, ngay cả khi bạn sao chép và dán. Bạn có thể xác minh điều này bằng cách truyền đến varbinary và xem liệu các mã ký tự có liên quan có xuất hiện trong biểu diễn nhị phân hay không bằng cách viết một ứng dụng C# nhỏ. –