Tôi muốn sử dụng một truy vấn như sau, tôi đang tìm kiếm thông tin chính xác/link để thoát khỏi chuỗiChuỗi Đúng Thoát cho xâu T-SQL
BOOKTITLE là nvarchar (200)
SELECT * FROM Sách WHERE BookTitle IN ('Mars and Venus', 'Stack''s Overflow \ r \ n')
Câu hỏi: Chỉ cần "'" thoát hoặc thậm chí \ r \ n cũng cần được thoát ? Nhà cung cấp MySql .Net đưa ra một phương thức để thoát khỏi các giá trị chuỗi, có chức năng nào như vậy trong Sql Server .Net Provider không?
Tôi có thể cần phải thoát C# tương đương cho các giá trị chuỗi.
Tôi biết về Parameterized Command, nhưng để giảm thiểu máy chủ của tôi để giao tiếp với khách hàng, và giá trị của tôi trong mệnh đề IN là từ 20 đến 50, nó trở nên quá nhiều mạng đắt tiền để chạy SELECT cho mỗi giá trị của BookTitle trong một cuộc gọi. Thay vì chạy truy vấn đơn lẻ và trả về tất cả các kết quả, cascaded giúp tiết kiệm tài nguyên mạng.
Đây là nhận xét tiếp tuyến, nhưng vẫn quan trọng. Nếu bạn đang làm điều này cho các truy vấn của riêng bạn trong studio quản lý, đó là tốt. Nhưng nếu bạn đang thực hiện _programmatically_ — xây dựng chuỗi truy vấn của mình và thoát trong chương trình phía máy khách — _bạn đang làm sai. Bạn cần truy vấn được tham số hóa. –
Đề xuất của bạn là bạn cần chạy 1 lựa chọn cho mỗi giá trị của thông số là không chính xác. Sử dụng một tham số bảng-giá trị hoặc XML HOẶC sử dụng một chuỗi phân cách bằng dấu phẩy và giải nén nó ở phía máy chủ SQL. Đó sẽ là một truy vấn. http://www.sommarskog.se/arrays-in-sql-2008.html – Davos