Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }
Example #6
0
        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));
        }
Example #7
0
        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));
        }
Example #8
0
        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);
        }