/// <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); } } } } }
/// <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); }
/// <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)); }
/// <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 * }); * }*/ } }