예제 #1
0
 public static bool?GetBoolNullable(System.Data.IDataReader dataReader, int i)
 {
     if (dataReader.IsDBNull(i))
     {
         return(null);
     }
     return(dataReader.GetBoolean(i));
 }
예제 #2
0
        public static bool GetBool(System.Data.IDataReader dataReader, int i)
        {
            if (dataReader.IsDBNull(i))
            {
                return(false);
            }

            return(dataReader.GetBoolean(i));
        }
예제 #3
0
        private static T_Entity DataReader2Entity(System.Data.IDataReader dataReader)
        {
            T_Entity obj = new T_Entity
            {
                FLong          = dataReader.GetInt64(0),
                FString        = dataReader.GetString(1),
                FDecimal       = dataReader.GetDecimal(2),
                FNullDecimal   = dataReader.IsDBNull(3) ? default(decimal?) : dataReader.GetDecimal(3),
                FBool          = dataReader.GetBoolean(4),
                FNullBool      = dataReader.IsDBNull(5) ? default(bool?) : dataReader.GetBoolean(5),
                Status         = (EntityStatus)Enum.ToObject(_entityStatusType, dataReader.GetInt16(7)),
                NullStatus     = dataReader.IsDBNull(8) ? default(EntityStatus?) : (EntityStatus)Enum.ToObject(_entityStatusType, dataReader.GetInt16(8)),
                CreationTime   = dataReader.GetDateTime(9),
                LastUpdateTime = dataReader.IsDBNull(10) ? default(DateTime?) : dataReader.GetDateTime(10),
            };

            return(obj);
        }
예제 #4
0
 public static bool Bool(System.Data.IDataReader reader, MapPoint mapPoint, bool defaultValue = false)
 {
     try
     {
         return(mapPoint.IsInResultSet() && !reader.IsDBNull(mapPoint.Index)? reader.GetBoolean(mapPoint.Index):defaultValue);
     }
     catch (Exception)
     {
         throw;
     }
 }
예제 #5
0
 public static bool GetBoolean(System.Data.IDataReader rdr, string Column, bool NullValue)
 {
     if (rdr[Column] != DBNull.Value)
     {
         return(rdr.GetBoolean(rdr.GetOrdinal(Column)));
     }
     else
     {
         return(NullValue);
     }
 }
예제 #6
0
        private static T_Entity DataReader2Entity_GetValue(System.Data.IDataReader dataReader)
        {
            var      FNullDecimal   = dataReader.GetValue(3);
            var      FNullBool      = dataReader.GetValue(5);
            var      NullStatus     = dataReader.GetValue(8);
            var      LastUpdateTime = dataReader.GetValue(10);
            T_Entity obj            = new T_Entity
            {
                FLong          = dataReader.GetInt64(0),
                FString        = dataReader.GetString(1),
                FDecimal       = dataReader.GetDecimal(2),
                FNullDecimal   = FNullDecimal == DBNull.Value ? default(decimal?) : (decimal)FNullDecimal,
                FBool          = dataReader.GetBoolean(4),
                FNullBool      = FNullBool == DBNull.Value ? default(bool?) : (bool)FNullBool,
                Status         = (EntityStatus)Enum.ToObject(_entityStatusType, dataReader.GetInt16(7)),
                NullStatus     = NullStatus == DBNull.Value ? default(EntityStatus?) : (EntityStatus)Enum.ToObject(_entityStatusType, NullStatus),
                CreationTime   = dataReader.GetDateTime(9),
                LastUpdateTime = LastUpdateTime == DBNull.Value ? default(DateTime?) : (DateTime)LastUpdateTime,
            };

            return(obj);
        }
예제 #7
0
        static IEnumerable <CustomFeeModel> LoadFromDBase(Shotgun.Database.IBaseDataClass2 dBase, int spTroneId, string customId)
        {
            var trones = LightDataModel.tbl_troneItem.GetTroneIdsBySptroneId(dBase, spTroneId);

            if (trones.Count() == 0)
            {
                return new CustomFeeModel[] { }
            }
            ;
            string sql;

            if (string.IsNullOrEmpty(customId))
            {//整个通道信息
                sql = string.Format("SELECT trone_id,fee_date= current_Date() isToday , sum(count)  FROM daily_log.tbl_custom_fee_count "
                                    + " where trone_id in({0}) "
                                    + " group by trone_id,isToday",
                                    string.Join(",", trones.Select(e => e.id)), DateTime.Today);
            }
            else
            {//用户计费信息
                sql = string.Format("SELECT trone_id,fee_date= current_Date() isToday , sum(count)  FROM daily_log.tbl_custom_fee_count "
                                    + " where trone_id in({0}) and custom_id='{1}'"
                                    + " group by trone_id,isToday",
                                    string.Join(",", trones.Select(e => e.id)), dBase.SqlEncode(customId));
            }


            var cmd = dBase.Command();

            cmd.CommandText = sql;
            System.Data.IDataReader dr  = null;
            List <CustomFeeModel>   rlt = new List <CustomFeeModel>();

            try
            {
                dr = dBase.ExecuteReader(cmd);
                while (dr.Read())
                {
                    var m = new CustomFeeModel();
                    m.CustomId = customId;
                    m.SpToneId = spTroneId;
                    m.TroneId  = dr.GetInt32(0);
                    m.Date     = dr.GetBoolean(1) ? DateTime.Today : DateTime.Today.AddDays(-1);
                    m.Count    = dr.GetInt32(2);
                    m.Fee      = decimal.ToInt32(100 * trones.First(e => e.id == m.TroneId).price);
                    rlt.Add(m);
                    cache.InsertItem(m);
                }
            }
            finally
            {
                if (dr != null)
                {
                    dr.Dispose();
                }
                cmd.Dispose();
            }
            if (rlt.Count == 0)
            {//表示该用户,日月限缓存已经建立
                var trone = trones.First();
                var m     = new CustomFeeModel();
                m.CustomId = customId;
                m.SpToneId = spTroneId;
                m.TroneId  = trone.id;
                m.Date     = DateTime.Today;
                m.Count    = 0;
                m.Fee      = decimal.ToInt32(100 * trone.price);
                rlt.Add(m);
                cache.InsertItem(m);
            }
            return(rlt);
        }
예제 #8
0
 public static bool?GetBoolean(System.Data.IDataReader rdr, string Column)
 {
     return(rdr[Column] != DBNull.Value ? (bool?)rdr.GetBoolean(rdr.GetOrdinal(Column)) : null);
 }
예제 #9
0
        public void SetFromReader <T>(T obj, System.Data.IDataReader reader, Action <T, string, object> setMethod)
            where T : class
        {
            if (!reader.IsDBNull(this.Index))
            {
                switch (this.SqlType)
                {
                case System.Data.SqlDbType.BigInt:
                    setMethod(obj, FieldName, reader.GetInt64(this.Index));
                    break;

                case System.Data.SqlDbType.Image:
                case System.Data.SqlDbType.VarBinary:
                case System.Data.SqlDbType.Binary:
                    long   size       = reader.GetBytes(this.Index, 0, null, 0, 0);
                    byte[] values     = new byte[size];
                    int    bufferSize = 1024;
                    long   bytesRead  = 0;
                    int    curPos     = 0;
                    while (bytesRead < size)
                    {
                        bytesRead += reader.GetBytes(this.Index, curPos, values, curPos, bufferSize);
                        curPos    += bufferSize;
                    }
                    setMethod(obj, FieldName, values);
                    break;

                case System.Data.SqlDbType.Bit:
                    setMethod(obj, FieldName, reader.GetBoolean(this.Index));
                    break;

                case System.Data.SqlDbType.Char:
                    setMethod(obj, FieldName, reader.GetChar(this.Index));
                    break;

                case System.Data.SqlDbType.SmallDateTime:
                case System.Data.SqlDbType.Date:
                case System.Data.SqlDbType.DateTime:
                case System.Data.SqlDbType.DateTime2:
                    setMethod(obj, FieldName, reader.GetDateTime(this.Index));
                    break;

                case System.Data.SqlDbType.SmallMoney:
                case System.Data.SqlDbType.Money:
                case System.Data.SqlDbType.Decimal:
                    setMethod(obj, FieldName, reader.GetDecimal(this.Index));
                    break;

                case System.Data.SqlDbType.Float:
                    setMethod(obj, FieldName, reader.GetDouble(this.Index));
                    break;

                case System.Data.SqlDbType.Int:
                    setMethod(obj, FieldName, reader.GetInt32(this.Index));
                    break;

                case System.Data.SqlDbType.Text:
                case System.Data.SqlDbType.NVarChar:
                case System.Data.SqlDbType.NText:
                case System.Data.SqlDbType.VarChar:
                case System.Data.SqlDbType.NChar:
                    setMethod(obj, FieldName, reader.GetString(this.Index));
                    break;

                case System.Data.SqlDbType.Real:
                    setMethod(obj, FieldName, reader.GetFloat(this.Index));
                    break;

                case System.Data.SqlDbType.SmallInt:
                    setMethod(obj, FieldName, reader.GetInt16(this.Index));
                    break;

                case System.Data.SqlDbType.TinyInt:
                    setMethod(obj, FieldName, reader.GetByte(this.Index));
                    break;

                case System.Data.SqlDbType.UniqueIdentifier:
                    setMethod(obj, FieldName, reader.GetGuid(this.Index));
                    break;

                default:
                    break;
                }
            }
            else
            {
                setMethod(obj, FieldName, null);
            }
        }
예제 #10
0
 bool System.Data.IDataRecord.GetBoolean(int i)
 {
     return(_dataReader.GetBoolean(i));
 }
예제 #11
0
        public static bool AsBoolean(this System.Data.IDataReader reader, string name, bool defaultValue = false)
        {
            var o = reader[name];

            return(o != null && o != DBNull.Value ? reader.GetBoolean(reader.GetOrdinal(name)) : defaultValue);
        }