chcę użyć kwerendy jako następujące, szukam dokładnych informacji/link do ucieczki ciągiPrawidłowe String Uciekając się do T-SQL ciąg literały
BOOKTITLE jest NVARCHAR (200)
select * from Books GDZIE BookTitle IN ("Mars i Wenus", "Przepełnienie stosu" \ r \ n ')
Pytanie: Czy tylko "" "trzeba uciec, czy nawet \ r \ n, trzeba również uciec ? MySql .Net Provider udostępnia metodę, aby uciec wartości ciągów, czy istnieje taka funkcja w Sql Server .Net Provider?
Prawdopodobnie potrzebuję ucieczki równoważnej C# dla wartości łańcuchowych.
Jestem świadomy polecenia sparametryzowanego, ale w celu zminimalizowania komunikacji z serwerem do klienta, a moje wartości w klauzuli IN są w liczbie od 20 do 50, to staje się zbyt dużo sieci, aby uruchomić SELECTs dla każdej wartości BookTitle w jednym wywołaniu. Raczej uruchamianie pojedynczego zapytania i zwracanie wszystkich kaskadowanych wyników pomaga w oszczędzaniu zasobów sieciowych.
To komentarz styczny, ale nadal ważny. Jeśli robisz to dla własnych zapytań w studiu zarządzania, w porządku. Ale jeśli robisz to _programmatically_ — budowanie łańcucha zapytania i ucieczkę w programie po stronie klienta —, robisz to źle. Potrzebujesz sparametryzowanej kwerendy. –
Twoja sugestia, że musisz uruchomić 1 wybierz dla każdej wartości parametru jest niepoprawna. Użyj wartościowania tabelarycznego LUB XML LUB użyj łańcucha rozdzielanego przecinkami i rozpakuj go po stronie serwera SQL. To będzie jedno zapytanie. http://www.sommarskog.se/arrays-in-sql-2008.html – Davos