/// <summary> /// Executes command and returns results as collection of values, mapped using provided mapping function. /// </summary> /// <typeparam name="T">Result record type.</typeparam> /// <param name="objectReader">Record mapping function from data reader.</param> /// <returns>Returns collection of query result records.</returns> public IEnumerable <T> Query <T>(Func <IDataReader, T> objectReader) { DataConnection.InitCommand(CommandType, CommandText, Parameters, null); if (Parameters != null && Parameters.Length > 0) { SetParameters(DataConnection, Parameters); } return(ReadEnumerator(DataConnection.ExecuteReader(GetCommandBehavior()), objectReader)); }
/// <summary> /// Executes command and returns results as collection of values, mapped using provided mapping function. /// </summary> /// <typeparam name="T">Result record type.</typeparam> /// <param name="objectReader">Record mapping function from data reader.</param> /// <returns>Returns collection of query result records.</returns> public IEnumerable <T> Query <T>(Func <IDataReader, T> objectReader) { DataConnection.InitCommand(CommandType, CommandText, Parameters, null); if (Parameters != null && Parameters.Length > 0) { SetParameters(DataConnection, Parameters); } using (var rd = DataConnection.ExecuteReader(GetCommandBehavior())) while (rd.Read()) { yield return(objectReader(rd)); } }
static T ExecuteScalar <T>(DataConnection connection, string sql) { using (var rd = connection.ExecuteReader()) { if (rd.Read()) { var objectReader = GetObjectReader <T>(connection, rd, sql); #if DEBUG //var value = rd.GetValue(0); #endif try { return(objectReader(rd)); } catch (InvalidCastException) { return(GetObjectReader2 <T>(connection, rd, sql)(rd)); } } } return(default(T)); }
static IEnumerable <T> ExecuteQuery <T>(DataConnection connection) { using (var rd = connection.ExecuteReader()) { if (rd.Read()) { var objectReader = GetObjectReader <T>(connection, rd, connection.Command.CommandText); var isFaulted = false; do { T result; try { result = objectReader(rd); } catch (InvalidCastException) { if (isFaulted) { throw; } isFaulted = true; objectReader = GetObjectReader2 <T>(connection, rd, connection.Command.CommandText); result = objectReader(rd); } yield return(result); } while (rd.Read()); } } }
public static DataTable LoadDataTable(this DataConnection dc, string sql) { var dt = new DataTable(); dt.Load(dc.ExecuteReader(sql).Reader); return(dt); }
public static DataReader ExecuteReader(this DataConnection connection, string sql) { connection.SetCommand(sql); return(new DataReader { Connection = connection, Reader = connection.ExecuteReader() }); }
public static DataReader ExecuteReader(this DataConnection connection, string sql, params DataParameter[] parameters) { connection.SetCommand(sql); SetParameters(connection, parameters); return(new DataReader { Connection = connection, Reader = connection.ExecuteReader() }); }
public static IEnumerable <T> Query <T>(this DataConnection connection, Func <IDataReader, T> objectReader, string sql) { connection.SetCommand(sql); using (var rd = connection.ExecuteReader()) while (rd.Read()) { yield return(objectReader(rd)); } }
public static IEnumerable <T> QueryProc <T>(this DataConnection connection, Func <IDataReader, T> objectReader, string sql, params DataParameter[] parameters) { connection.SetCommand(sql); connection.Command.CommandType = CommandType.StoredProcedure; SetParameters(connection, parameters); using (var rd = connection.ExecuteReader()) while (rd.Read()) { yield return(objectReader(rd)); } }
public static IEnumerable <T> Query <T>(this DataConnection connection, Func <IDataReader, T> objectReader, string sql, object parameters) { connection.SetCommand(sql); var dps = GetDataParameters(connection, parameters); SetParameters(connection, dps); using (var rd = connection.ExecuteReader()) while (rd.Read()) { yield return(objectReader(rd)); } }
public override IDataReader ExecuteReader() { SetCommand(true); _dataConnection.InitCommand(CommandType.Text, _preparedQuery.Commands[0], null, QueryHints); if (_preparedQuery.Parameters != null) { foreach (var p in _preparedQuery.Parameters) { _dataConnection.Command.Parameters.Add(p); } } return(_dataConnection.ExecuteReader()); }
public static IDataReader ExecuteReader(DataConnection dataConnection, IQueryContext context) { var preparedQuery = GetCommand(dataConnection, context); GetParameters(dataConnection, context, preparedQuery); dataConnection.InitCommand(CommandType.Text, preparedQuery.Commands[0], null, preparedQuery.QueryHints); if (preparedQuery.Parameters != null) { foreach (var p in preparedQuery.Parameters) { dataConnection.Command.Parameters.Add(p); } } return(dataConnection.ExecuteReader()); }
public void TestDataReader(string context) { using (var conn = new DataConnection(context)) using (var reader = conn.ExecuteReader("SELECT 1; SELECT '2'")) { var n = reader.Execute<int>(); Assert.AreEqual(1, n); var s = reader.Query<string>(); Assert.AreEqual("2", s.First()); } }