static public List <ItemTy> ObjectList <ItemTy>( CommandFill FillCmd, params object[] args) where ItemTy : Robot, new() { return(PerformOperation <List <ItemTy> >( Helpers.CnnStr(), ReadObjectList <ItemTy>, FillCmd, args)); }
static public ItemTy SingleObject <ItemTy>(string CnnStr, CommandFill FillCmd, params object[] args) where ItemTy : Robot, new() { return(PerformOperation <ItemTy>( CnnStr, ReadSingleObject <ItemTy>, FillCmd, args)); }
static private ItemTy PerformOperation <ItemTy>( string CnnStr, PerformRead <ItemTy> ReadData, CommandFill FillCmd, object[] args) { SqlConnection cn = new SqlConnection(CnnStr); ItemTy rval = default(ItemTy); SafeDataReader dr = null; SqlTransaction tr; cn.Open(); tr = cn.BeginTransaction(IsolationLevel.ReadCommitted); try { SqlCommand cmd = cn.CreateCommand(); cmd.Transaction = tr; FillCmd(cmd, args); dr = new SafeDataReader(cmd.ExecuteReader()); rval = ReadData(dr); dr.Close(); tr.Commit(); } catch { if ((dr != null) && !dr.IsClosed) { dr.Close(); } tr.Rollback(); throw; } finally { if ((dr != null) && !dr.IsClosed) { dr.Close(); } cn.Close(); } return(rval); }
static public List <ItemTy> ScalarList <ItemTy>( CommandFill FillCmd, params object[] args) { return(PerformOperation <List <ItemTy> >( Helpers.CnnStr(), ReadScalarList <ItemTy>, FillCmd, args)); }
static public ItemTy Scalar <ItemTy>( CommandFill FillCmd, params object[] args) { return(PerformOperation <ItemTy>( Helpers.CnnStr(), ReadSingleScalar <ItemTy>, FillCmd, args)); }