Witam wszystkich,
Mam pewien problem z pobraniem danych poprzez parametry poprzez kontroler ODBC.
Standardowe zapytanie wygląda tak:
OdbcCommand command;
queryString = "SELECT * FROM players WHERE id=?;";
command = new OdbcCommand(queryString, connection);
command.Parameters.Add("@id", OdbcType.Int).Value = (int)(Session["userid"]);
... i wszystko działa prawidłowo. Problem zaczyna się, gdy chcę ułożyć zapytanie w stylu:
OdbcCommand command;
DateTime teraz = DateTime.Now;
queryString = "INSERT INTO norma (id_player, rok, miesiac, min_gier) SELECT * FROM (SELECT ?, " + teraz.Year + ", " + teraz.Month + ", ?) as tmp WHERE NOT EXISTS (SELECT id_norma FROM norma WHERE id_player=? AND rok=" + teraz.Year + " AND miesiac=" + teraz.Month + ") LIMIT 1;";
command = new OdbcCommand(queryString, connection);
command.Parameters.Add("@id_p", OdbcType.Int).Value = (int)(Session["userid"]);
command.Parameters.Add("@liczba_g", OdbcType.Int).Value = (int)(Session["liczba_g"]);
command.Parameters.Add("@id_p2", OdbcType.Int).Value = (int)(Session["userid"]);
Dostaję wówczas wyjątek: System.Data.Odbc.OdbcException: ERROR [HY000] [MySQL][ODBC 5.3(w) Driver][mysqld-5.7.11-log]Column count doesn't match value count at row 1
Jak tylko wyrzucę parametry i wpiszę dane bezpośrednio do zapytania, to wszystko działa.
Czy moglibyście mi pomóc i powiedzieć, gdzie mam błąd i jak to powinno wyglądać?
Dziękuję i pozdrawiam,
Tomek