2012-08-03 45 views
5

Trong Ruby có thể sử dụng các chuỗi mà không cần phải thoát khỏi dấu ngoặc kép trong chuỗi, như Q/Một số chuỗi của tôi với "dấu nháy kép"/Làm thế nào để tránh thoát kép trong chuỗi C#?

Có thể sử dụng chuỗi ký tự không cần để thoát khỏi dấu ngoặc kép? Vì lý do chính đáng, tôi cần phải viết SQL nội tuyến và rất khó để thoát khỏi các dấu ngoặc kép mỗi khi tôi đặt truy vấn SQL từ bàn điều khiển DB sang mã C#.

Tôi biết nó có thể sử dụng \" hoặc '' là một trong dấu nháy kép. Nhưng là nó có thể để tránh sự cần thiết phải thoát khỏi dấu ngoặc kép?

+0

Đơn giản chỉ cần đặt. Không. Bạn có thể sử dụng biểu tượng @ để dừng "đây là" + [dòng mới cho mã rõ ràng] "chuỗi dài mà bạn không muốn trên một dòng"; nhưng không có cách nào để tránh trốn thoát. –

Trả lời

4

Không, điều này không thể trong C#. Bạn có thể viết SQL của bạn trong một file riêng biệt và sau đó đọc nó từ đó

9

Không, về cơ bản bạn có thể lựa chọn "foo \" bar" hoặc @"foo "" bar", cả hai mà bạn đã đề cập Tuy nhiên, thẳng thắn mà nói tôi hiếm khi thấy " cần thiết trong SQL;... bạn có ' cho các chuỗi chữ và [/] cho tên đối tượng/cột - tất nhiên, điều này có thể chỉ vì tôi thường ly sử dụng SQL Server.

Cách thay thế duy nhất không liên quan đến việc thoát là chuyển SQL sang tệp tài nguyên bên ngoài, có thể là tệp văn bản. Điều đó, tuy nhiên, có lẽ đau đớn hơn là chỉ sử dụng "".

+1

Tôi sử dụng PostgreSQL, nơi các tên CamelCase nên được thoát bằng dấu ngoặc kép. – Zelid

+0

@Zelid có, tôi nghi ngờ bạn có thể đang sử dụng một công cụ DB khác cho tôi (Tôi hiếm khi thấy vấn đề này). Xin lỗi, bạn phải chọn tùy chọn nào ít tệ hơn, tôi đoán vậy. –

0

Đối với một lý do chính đáng tôi cần phải viết SQL inline và nó rất khó chịu để thoát dấu ngoặc kép mỗi khi tôi đặt truy vấn SQL từ DB console C# mã.

Nếu bạn đang viết Truy vấn Sql nội tuyến, bạn không cần phải lo lắng về báo giá nếu bạn đã chuyển giá trị qua SqlParameters. Bằng cách này bạn sẽ không thấy các dấu ngoặc kép gây phiền nhiễu ở mọi nơi và ngay cả truy vấn của bạn sẽ an toàn từ Sql Injection

+0

Tôi sử dụng Massive làm thư viện truy cập DB nhẹ. Nó luôn luôn sử dụng params thoát. Tôi cần phải sử dụng dấu ngoặc kép trong tên cột và bảng trong PostgreSQL khi tôi sử dụng tên CamelCase. – Zelid

+0

@Zelid oh trong trường hợp đó tôi đồng ý nó sẽ gây phiền nhiễu khi nhìn thấy dấu ngoặc kép ở mọi nơi và tôi không nghĩ rằng bạn có một tùy chọn khác – HatSoft

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