public async Task <T> ExecuteAsync <T>(CancellationToken cancellationToken) { await DataConnection.InitCommandAsync(CommandType, CommandText, Parameters, cancellationToken); if (Parameters != null && Parameters.Length > 0) { SetParameters(DataConnection, Parameters); } using (var rd = await DataConnection.ExecuteReaderAsync(CommandBehavior, cancellationToken)) { if (await rd.ReadAsync(cancellationToken)) { try { return(GetObjectReader <T>(DataConnection, rd, CommandText)(rd)); } catch (InvalidCastException) { return(GetObjectReader2 <T>(DataConnection, rd, CommandText)(rd)); } } } return(default(T)); }
public T Execute <T>() { DataConnection.InitCommand(CommandType, CommandText, Parameters, null); if (Parameters != null && Parameters.Length > 0) { SetParameters(DataConnection, Parameters); } using (var rd = DataConnection.ExecuteReader(CommandBehavior)) { if (rd.Read()) { var objectReader = GetObjectReader <T>(DataConnection, rd, CommandText); #if DEBUG //var value = rd.GetValue(0); //return default (T); #endif try { return(objectReader(rd)); } catch (InvalidCastException) { return(GetObjectReader2 <T>(DataConnection, rd, CommandText)(rd)); } } } return(default(T)); }
public T Execute <T>() { DataConnection.InitCommand(CommandType, CommandText, Parameters, null); Dictionary <string, CustomerParam> param = new Dictionary <string, CustomerParam>(); if (Parameters != null && Parameters.Length > 0) { param = SetParameters(DataConnection, Parameters); } using (var rd = DataConnection.ExecuteReader(CommandText, param)) { if (rd.Read()) { var objectReader = GetObjectReader <T>(DataConnection, rd, CommandText); try { return(objectReader(rd)); } catch (InvalidCastException) { return(GetObjectReader2 <T>(DataConnection, rd, CommandText)(rd)); } catch (FormatException) { return(GetObjectReader2 <T>(DataConnection, rd, CommandText)(rd)); } } } return(default(T)); }
public static T Execute <T>(this DataReader reader) { if (reader.ReadNumber != 0) { if (!reader.Reader.NextResult()) { return(default(T)); } } reader.ReadNumber++; var sql = reader.Connection.Command.CommandText + "$$$" + reader.ReadNumber; if (reader.Reader.Read()) { var objectReader = GetObjectReader <T>(reader.Connection, reader.Reader, sql); try { return(objectReader(reader.Reader)); } catch (InvalidCastException) { return(GetObjectReader2 <T>(reader.Connection, reader.Reader, sql)(reader.Reader)); } } return(default(T)); }
static T ExecuteScalar <T>(DataConnection connection, string sql) { using (var rd = connection.Command.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)); }
internal async Task <T> ExecuteScalarAsync <T>(DbDataReader rd, string sql, CancellationToken cancellationToken) { if (await rd.ReadAsync(cancellationToken)) { try { return(GetObjectReader <T>(DataConnection, rd, sql)(rd)); } catch (InvalidCastException) { return(GetObjectReader2 <T>(DataConnection, rd, sql)(rd)); } } return(default(T)); }
internal T ExecuteScalar <T>(IDataReader rd, string sql) { if (rd.Read()) { try { return(GetObjectReader <T>(DataConnection, rd, sql)(rd)); } catch (InvalidCastException) { return(GetObjectReader2 <T>(DataConnection, rd, sql)(rd)); } } return(default(T)); }
public long ExcuteSharding() { DataConnection.InitCommand(CommandType, CommandText, Parameters, null); Dictionary <string, CustomerParam> param = new Dictionary <string, CustomerParam>(); if (Parameters != null && Parameters.Length > 0) { param = SetParameters(DataConnection, Parameters); } var result = 0L; foreach (var rd in DataConnection.ExecuteReader(CommandText, param)) { using (rd) { if (rd.Read()) { var objectReader = GetObjectReader <long>(DataConnection, rd, CommandText); try { result += objectReader(rd); } catch (InvalidCastException) { result += GetObjectReader2 <long>(DataConnection, rd, CommandText)(rd); } catch (FormatException) { result += GetObjectReader2 <long>(DataConnection, rd, CommandText)(rd); } } } } return(result); }