[C#] DataGridView - obsługa tego wszystkiego

0

otóż wymyśliłem sobie, żeby stworzyć ogólną klasę do obsługi bazy danych między innymi jest tam metoda (na razie tworzona) do obsługi DataGridView

/*argumenty
sqlSelComm - zapytanie SELECT
sqlUpdateComm - zapytanie UPDATE
sqlUpdateParamsArr - parametry (nazwy kolumn)
sqlUpdateColsArr - nazwy kolumn w baze
mysqlDBTarr - typ kolumny
iSize - rozmiar, potrzebny do tabeli parametrów

*/
 public static DataTable bindData(String sqlSelComm, String sqlUpdateComm, String[] sqlUpdateParamsArr, String[] sqlUpdateColsArr, MySqlDbType[] mysqlDBTarr, int[] iSize)
        {
            MySqlCommand selectCommand = m_MySqlConn.CreateCommand();
            selectCommand.CommandText = sqlSelComm;
            
            MySqlCommand updateCommand = m_MySqlConn.CreateCommand();
            updateCommand.CommandText = sqlUpdateComm;
            for (int i = 0; i < sqlUpdateParamsArr.Length; i++)
            {
                updateCommand.Parameters.Add(
                    new MySqlParameter("@" + sqlUpdateParamsArr[i], mysqlDBTarr[i], iSize[i], sqlUpdateParamsArr[i]));
            }
            DataSet ds = new DataSet();
            MySqlDataAdapter adapter = new MySqlDataAdapter(selectCommand);
            adapter.UpdateCommand = updateCommand;
            adapter.Fill(ds);
            DataTable table = ds.Tables[0];
            adapter.Update(table);
            return table;
        }

to jest obsługiwane przez klasę zapytań

 public static DataTable bidDataGridView(int iId)
        {
            String sqlSelect = "SELECT `id_phn` AS KOLEJNOSC,`phn_numer` AS NUMER FROM telefon WHERE `phn_id_own` = " +iId.ToString() + " ORDER BY 1, 2";
            String sqlUpdate = "UPDATE telefon SET phn_numer = @KOLEJNOSC WHERE id_phn = @NUMER";
            String [] sqlUpdateParams ={"KOLEJNOSC","NUMER"};
            String[] sqlUpdateCols = { "phn_numer", "id_phn" };
            MySqlDbType[] mysqlDBT = new MySqlDbType[2];
            mysqlDBT[0] = new MySqlDbType();
            mysqlDBT[0] = MySqlDbType.Int32;
            mysqlDBT[1] = new MySqlDbType();
            mysqlDBT[1] = MySqlDbType.VarChar;
            int[] iSize = new int[2];
            iSize[0]=40;
            iSize[1]=5;
            return sqlQuery.bindData(sqlSelect, sqlUpdate, sqlUpdateParams,sqlUpdateCols, mysqlDBT,iSize);
        }

Wszystko jest OK od strony działania tego w postaci pobierania danych, ale przy update nie działa, próbowałem różnych wywołań funkcji update (są bodajże 4 wersje) i nie działa

nie ukrywam, że robiłem to tak bardziej po małpiemu - bez rozumowo, sprawdzając metodą prób i błędów co i jak działa

ale nie wiem czemu update mi nie działa - nie wiem jak sprawdzić, zapytanie czy jest dobre, czy wartości są dobrze przekazane, co może być przyczyną tego, że UPDATE nie działa?

0

Z tego co widzęna 1-szy rzut oka to kolejnośc parametrów jest nieodpowiednia a tego co wiem to to ważne, czyli varchar przed int

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