예제 #1
0
        public List <IDlo> GetData(DbTransaction transaction, int pageNumber = -1)
        {
            var ret = new List <IDlo>();

            SetSchemaTableIfNull();
            SetPrimaryKeyIfNull();

            using (DbCommand cmd = MRC.GetCommand(CNN))
            {
                cmd.CommandText = SqlGenerator.GetSql(Sql, Where, SqlGenerator.GetOrderByClause(OrderItems), pageNumber, PageSize);
                cmd.Transaction = transaction;

                using (DbDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var dlo = new Dlo();
                        for (int i = 0; i < reader.FieldCount; i++)
                        {
                            // CONSIDER - treba li poslusati best practices dbreadera (Stringove vracati s reader.GetString, decimali reader.GetDecimal, itd.) testirati performance profilerom
                            dlo.ColumnValues.Add(reader.GetName(i), reader.GetValue(i));
                        }
                        ret.Add(dlo);
                    }
                }
            }
            return(ret);
        }
예제 #2
0
 public void Connect(string connectionString)
 {
     MRC.GetInstance().ConnectionString = connectionString;
     try
     {
         using (DbConnection cnn = MRC.GetConnection())
         {
             cnn.Open();
             object test = null;
             using (IDbCommand cmd = MRC.GetCommand(cnn))
             {
                 cmd.CommandText = "SELECT Test = 1";
                 test            = cmd.ExecuteScalar();
             }
         }
     }
     catch (Exception ex)
     {
         throw new Exception("Cannot connect to database.\n", ex);
     }
 }