Example #1
0
        /// <summary>
        /// Kopiuje wartości z datareader'a do klasy
        /// </summary>
        public static void MatchTo <T>(
            this MyDbReader <T> DataReader,
            Boolean CaseSensitive,
            T Item)
        {
            //var lProperties = typeof(T).GetProperties();
            //var lFields = typeof(T).GetFields();

            if (!DataReader.R.IsClosed)
            {
                for (int i = 0; i < DataReader.Count; i++)
                {
                    if (DataReader.DestTypes.ContainsKey(i))
                    {
                        var setter = DataReader.DestSetters[i];
                        if (setter != null)
                        {
                            setter.SetValue(
                                Item,
                                MyTypeHelper.ConvertTo(
                                    DataReader.R.Get <Object>(i),
                                    DataReader.DestTypes[i]),
                                null);
                        }
                    }
                }
            }
        }
Example #2
0
 /// <summary>
 /// Kopiuje wartości z datareader'a do klasy
 /// </summary>
 public static void MatchTo <T>(
     this MyDbReader <T> DataReader,
     T Item)
     where T : new()
 {
     MatchTo <T>(DataReader, false, Item);
 }
Example #3
0
 /// <summary>
 /// Kopiuje wartości z datareader'a do klasy
 /// </summary>
 public static T MatchTo <T>(
     this MyDbReader <T> DataReader)
     where T : new()
 {
     if (!DataReader.R.IsClosed)
     {
         T lItem = new T();
         MatchTo <T>(DataReader, false, lItem);
         return(lItem);
     }
     return(default(T));
 }
Example #4
0
        /// <summary>
        /// odpala datareader'a
        /// </summary>

        /*public static Int32 ExecuteAndReturnAffectedRows(
         *  this DbConnection Connection,
         *  String SqlStatement)
         * {
         *  if (Connection != null && !String.IsNullOrEmpty(SqlStatement))
         *  {
         *      Connection.OpenIfClosed();
         *      using (var lCommand = Connection.CreateCommand())
         *      {
         *          // lCommand.Transaction = Transaction;
         *          lCommand.CommandText = SqlStatement;
         *          lCommand.CommandTimeout = 60 * 5;
         *
         *          using (var lReader = lCommand.ExecuteReader())
         *          {
         *              return lReader.RecordsAffected;
         *          }
         *      }
         *  }
         *  return 0;
         * }*/

        /// <summary>
        /// odpala datareader'a
        /// </summary>
        public static void ExecuteReader <T>(
            this DbConnection Connection,
            String SqlStatement,
            Boolean OneResult,
            Action <MyDbReader <T> > DataReaderAction)
        {
            if (Connection != null && !String.IsNullOrEmpty(SqlStatement))
            {
                Connection.OpenIfClosed();

                /*DateTime? start = null;
                 * if (InternalProfiler.IsEnabled)
                 *  start = DateTimeHelper.Now();*/

                using (var lCommand = Connection.CreateCommand())
                {
                    // lCommand.Transaction = Transaction;
                    lCommand.CommandText = SqlStatement;
                    CorrectCommand(lCommand, Connection);
                    var commandBehavior = OneResult ? CommandBehavior.SingleRow : CommandBehavior.Default;
                    using (var dbReader = lCommand.ExecuteReader(commandBehavior))
                    {
                        using (var reader = new MyDbReader <T>(dbReader))
                        {
                            if (DataReaderAction != null)
                            {
                                while (dbReader.Read())
                                {
                                    DataReaderAction(reader);
                                    if (OneResult)
                                    {
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }

                /*if (InternalProfiler.IsEnabled)
                 * {
                 *  DateTime now = DateTimeHelper.Now();
                 *  ProfilerDataQueue.Add(
                 *      new ProfilerDataItem()
                 *      {
                 *          Duration = TimeSpan.FromTicks(now.Ticks - start.Value.Ticks),
                 *          Time = now,
                 *          Sql = SqlStatement
                 *      });
                 * }*/
            }
        }