Parametr w zapytaniu SQL

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?

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;
0

Brakuje ' w string budującym zapytanie:

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

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

Jak chcesz przekazać parametry to robisz to tak:

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0