Più che altro, il funzionamento della tua classe sembra del tutto identico a quello già offerto dalle classi ADO.NET: perché reinventare la ruota?