string table = "City";
string query = "Select * from '"+table+"'";
Daje mi błąd podając nieprawidłowy symbol blisko”.Jak wstawić zmienną wewnątrz SELECT
jednak
string query = "Select * from City";
Daje właściwego wyjścia.
string table = "City";
string query = "Select * from '"+table+"'";
Daje mi błąd podając nieprawidłowy symbol blisko”.Jak wstawić zmienną wewnątrz SELECT
jednak
string query = "Select * from City";
Daje właściwego wyjścia.
Właśnie to
string query = "Select * from '"+table+"'";
być zastąpiony przez
string query = "Select * from " + table;
Bo ciąg kwerendy nie jest "Select * from City";
Choć formuje "Select * from 'City'";
i tym samym otrzymujesz błąd
Można zrobić to działa tak:
string table ="City"
string query = "Select * from "+table;
tęsknisz za ";" – MichaelMao
tak, działa. Dziękuję – subhro
@subhro, jeśli to zadziałało dla ciebie, to uprzejmie przyjmij to jako odpowiedź. –
Należy sformułować zapytanie, np. niskie.,
string table = "City";
//You don't need to have single quote...
string query = " Select * From " + table;
w celu wykorzystania Where
stan zrobić jak poniżej.,
//Where clause only needs single quotes, to define the SQL parameter value in between...
string query = " Select * From " + table + " Where CityId = '" + cityId + "'";
Nadzieja to pomaga.,
Najlepsza praktyka byłoby użyć string.Format
string table = "City";
string query = string.format("Select * from {0}", table);
Najlepsza praktyka powinna być aby tego nie robić, bec ause jest podatny na złośliwy SQL injection. W każdym razie, jeśli masz kontrolę nad zmienną table
, powinieneś zrobić to tak, jak sugerował @ madcow69, ale proponuję dodać separatory, więc zawsze masz ważny rozdzielony identyfikator (na przykład, jeśli nazwa twojego stołu to "zamów" "lub dowolne inne słowo zastrzeżone SQL).
string table = "City";
string query = string.format("Select * from [{0}]", table);
Ale co jeśli table
jest następujący ?:
string table = "City]; DROP DATABASE [YourDB";
Nadzieja to pomaga.,
string table = "City";
//You don't need to have single quote...
string query = " Select * From " + table;
Jeśli używasz .NET4.6
można użyć nowego „kompozytowe ciąg formatowania "funkcja wprowadzona z C# 6.0
(read about it here).
ten pozwala napisać oświadczenie tak:
string query = $"Select * from {table}";
Jednak chciałbym silnie nie zalecamy pisanie zapytań, jak to i używać sql parameters. Pomoże to uniknąć ataków SQL Injection.
zamień pojedyncze cudzysłowy na [] powinno działać – dawncode
Czy sprawdziłeś wynik zapytania? Czy możesz to wypróbować - zapytanie łańcuchowe = "Wybierz * od" + tabela; –
query = "Wybierz * od" + tabela; ale wierzcie mi, że to nie jest bezpieczne, jeśli zmienna tabeli nie jest literalnym ciągiem znaków. Nie buduj instrukcji sql łączących dane wejściowe odebrane z dowolnego źródła. –