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?