Esempio n. 1
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);
            }
        }
Esempio n. 2
0
 public static char Char(System.Data.IDataReader reader, MapPoint mapPoint, char defaultValue = ' ')
 {
     try
     {
         return(mapPoint.IsInResultSet() && !reader.IsDBNull(mapPoint.Index) ? reader.GetChar(mapPoint.Index) : defaultValue);
     }
     catch (Exception)
     {
         throw;
     }
 }
Esempio n. 3
0
 char System.Data.IDataRecord.GetChar(int i)
 {
     return(_dataReader.GetChar(i));
 }