2008-09-26 39 views
9

Trong SQL SERVER Có thể lưu trữ dữ liệu với vận chuyển trở lại trong một bảng và sau đó lấy nó trở lại một lần nữa với vận chuyển trở lại.Dữ liệu trong một bảng có trả lại vận chuyển?

Ví dụ:

insert into table values ('test1 

test2 

test3 

test4'); 

Khi tôi lấy nó, tôi nhận được thông báo trong một dòng

test1 test2 Test3 test4

Sự trở lại vận chuyển được coi là một nhân vật duy nhất.

Có cách nào để có được lợi tức vận chuyển hoặc chỉ là cách nó sẽ được lưu trữ?

Cảm ơn các bạn đã giúp đỡ !!!

Chỉnh sửa: Tôi nên giải thích điều này trước đây. Tôi nhận được dữ liệu từ việc phát triển web (asp .net) và tôi chỉ cần chèn nó vào bảng. Tôi có thể không làm bất kỳ thao tác dữ liệu nào .. chỉ cần chèn.

Tôi trả lại dữ liệu cho việc phát triển ứng dụng (C++) và có thể là một số dữ liệu hoặc trình xem báo cáo.

Tôi không muốn thao tác trên dữ liệu.

Trả lời

1

Bạn có thể làm rõ cách bạn truy xuất dữ liệu từ cơ sở dữ liệu không? Bạn sử dụng công cụ nào? Các dữ liệu có thể chứa trả về vận chuyển nhưng nó không được hiển thị nếu bạn nhận được kết quả trong lưới (hãy thử kết quả trong tùy chọn văn bản)

0

Bạn có thể cần phải đặt trong "\ n" thay vì trả về hàng chữ.

25

Bạn có thể lưu trữ dấu xuống dòng trong cơ sở dữ liệu. Vấn đề ở đây là bạn đang sử dụng SQL Server Management Studio để hiển thị kết quả truy vấn của bạn. Có thể bạn đã định cấu hình để hiển thị kết quả trong lưới. Thay đổi cấu hình của SSMS để hiển thị kết quả cho văn bản và bạn sẽ thấy trả về vận chuyển.

Nhấp chuột phải trong cửa sổ truy vấn -> Kết quả đến -> Kết quả thành văn bản

Chạy lại truy vấn của bạn.

+0

Điều này là chính xác. ;) Tôi đã kiểm tra để xác minh trước khi tôi đăng và Mastros đánh tôi với nó. – theo

0

Lợi nhuận vận chuyển được lưu trữ như hiện trạng. Vấn đề ở đây là máy khách sql của bạn không hiểu nó. Nếu bạn đã làm một bãi chứa thô của dữ liệu này, bạn sẽ thấy rằng các vận chuyển trở về có trong dữ liệu.

Tôi sử dụng DBArtisan tại nơi làm việc và có vẻ như hoạt động tốt. Tuy nhiên isql dường như có cùng một vấn đề mà bạn báo cáo.

4

IIRC, sử dụng chr (13) + chr (10) sẽ hoạt động.

insert into table values ('test1' + chr(13) + chr(10) + 'test2'); 
+0

Nói đúng, chr (13) là vận chuyển trở lại, nhưng chr (10) thì không. Đó là dòng Feed. – Constantin

+1

Đó là CHAR trong SQL Server, không phải CHR –

+0

'chr' là dành cho oracle. –

0

Đây có phải là kết quả trong HTML của bạn hoặc trong Trình phân tích truy vấn không? Nếu nó ở dạng HTML, hãy xem mã nguồn và nó có thể xuất hiện chính xác ở đó, trong trường hợp đó bạn phải thay thế các ký tự crlf bằng các thẻ <br />.

Tôi cũng nghĩ rằng đã từng là thuộc tính bạn có thể thêm vào một vùng văn bản HTML để buộc nó gửi trả về vận chuyển theo những cách nhất định - mềm hay khó? Tôi đã không xem xét điều đó, có lẽ ai đó có thể làm điều đó.

Nhưng SQL Server lưu hai ký tự theo kinh nghiệm của tôi.Trong thực tế, tôi đã làm chính xác như bạn mô tả ở đây một vài ngày trước bằng cách sử dụng SQL 2005 và mỗi ngắt dòng có hai ký tự unprintable.

6
INSERT INTO table values('test1' + CHAR(10) + 'test2' + CHAR(10) + 'test3' + CHAR(10) + 'test4') 

Điều này nên thực hiện. Để xem hiệu ứng, chuyển cửa sổ kết quả truy vấn sang đầu ra văn bản thuần túy.

Trân

0

Tôi đang sử dụng SQLite để lưu trữ texbox multiline và có một cái gì đó như thế khi lấy dữ liệu lưu trữ và hiển thị nó trên bất kỳ đối tượng (txtboxes, nhãn, vv). Bất cứ lúc nào tôi sao chép dữ liệu vào NotePad/WordPad hoặc tương tự, tôi có thể thấy rằng vận chuyển trở lại được lưu trữ, họ chỉ đơn giản là không được hiển thị trong trang ASP.

Tìm thấy câu trả lời ở đây:

http://www.mikesdotnetting.com/Article/20/How-to-retain-carriage-returns-or-line-breaks-in-an-ASP.NET-web-page

hy vọng rằng sẽ giúp.

mã ví dụ của tôi:

C#:

protected void Page_Load(object sender, EventArgs e) 
    { 
     String str = Request.QueryString["idNoticia"]; 
     this.dsNewsDetails.FilterExpression = "idNoticia=" + str; 
    } 

ASPX:

<asp:Label ID="BodyLabel" 
     runat="server" style="font-size: medium" 
     Text='<%# Eval("body").ToString().Replace(Environment.NewLine,"<br/>") %>' Width="100%" /> 

Lưu ý: như đã đề cập trong liên kết được cung cấp, Environment.NewLine làm việc cho cả C# và VB

0

Nếu bạn chuyển đầu ra thành văn bản thuần túy, bạn có thể xem dữ liệu theo các dòng khác nhau. Để chuyển đầu ra, hãy truy cập Tools>Options>Query Results và đặt đích đến mặc định thành: văn bản. Bạn cũng có thể thử nhấn Ctrl+p trước khi thực hiện truy vấn. Hy vọng nó giúp.

Các vấn đề liên quan