Parametr w zapytaniu SQL

Parametr w zapytaniu SQL
D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Chce wyświetlić widok baza z kategoria jaką wybiorę w comboBox. Sprawdzałem w debugerze i przyjmuje mi dobrą wartość z combBox, lecz dostaje komunikat SQL logic error, że nie znajduje się w bazie podana kolumna. Czy mój sposób jest dobry? I w jaki sposob moge zmienić format daty w bazie gdyz dataGridView nie konwertuje mi daty zapisanej w bazie i nie wyświetla mi w tabeli?

Kopiuj
string kat = comboBox1.Text;
            DataTable dt = new DataTable();

            zapytanie = string.Format("SELECT Nr, Desc, Kategoria,  Nazw FROM Stroje  WHERE (Kategoria LIKE " + kat + ") ORDER BY Nr ASC ");

            komenda = new SQLiteCommand(zapytanie, polaczenie);

            SQLiteDataAdapter sda = new SQLiteDataAdapter(zapytanie, polaczenie);

            sda.Fill(dt);

            dataGridView1.DataSource = dt;
PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
0

Brakuje ' w string budującym zapytanie:

Kopiuj
zapytanie = string.Format("SELECT Nr, Desc, Kategoria,  Nazw FROM Stroje  WHERE (Kategoria LIKE '" + kat + "') ORDER BY Nr ASC ");
hauleth
  • Rejestracja: dni
  • Ostatnio: dni
2

Na litość boską nie rób tak. To aż się prosi o SQL Injection.

Jak chcesz przekazać parametry to robisz to tak:

Kopiuj
var query = new SQLiteCommand("SELECT Nr, Desc, Kategoria,  Nazw FROM Stroje  WHERE (Kategoria LIKE ?) ORDER BY Nr ASC", connection's);

query.Parameters.Add(comboText1.Text);

Przy okazji typy i ich escapowanie zostanie ogarnięte za Ciebie.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.