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); } }
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; } }
char System.Data.IDataRecord.GetChar(int i) { return(_dataReader.GetChar(i)); }