public static SqlDbType GetSqlDbType(TypeCodeEx type) { switch (type) { case TypeCodeEx.Boolean: return(SqlDbType.Bit); case TypeCodeEx.Byte: return(SqlDbType.TinyInt); case TypeCodeEx.Char: return(SqlDbType.Char); case TypeCodeEx.SmartDate: case TypeCodeEx.DateTime: return(SqlDbType.DateTime); case TypeCodeEx.Decimal: return(SqlDbType.Decimal); case TypeCodeEx.Double: return(SqlDbType.Float); case TypeCodeEx.Guid: return(SqlDbType.UniqueIdentifier); case TypeCodeEx.Int16: return(SqlDbType.SmallInt); case TypeCodeEx.Int32: return(SqlDbType.Int); case TypeCodeEx.Int64: return(SqlDbType.BigInt); case TypeCodeEx.SByte: return(SqlDbType.TinyInt); case TypeCodeEx.Single: return(SqlDbType.Real); case TypeCodeEx.String: return(SqlDbType.VarChar); case TypeCodeEx.UInt16: return(SqlDbType.Int); case TypeCodeEx.UInt32: return(SqlDbType.BigInt); case TypeCodeEx.UInt64: return(SqlDbType.BigInt); case TypeCodeEx.Object: return(SqlDbType.Image); default: return(SqlDbType.VarChar); } }
public virtual string GetNowValue(TypeCodeEx typeCode) { var now = "Now"; if (_currentUnit.Params.LogInUtc) { now = "UtcNow"; } if (typeCode == TypeCodeEx.SmartDate || typeCode == TypeCodeEx.DateTime) { return("DateTime." + now); } if (typeCode == TypeCodeEx.DateTimeOffset) { return("DateTimeOffset." + now); } if (typeCode == TypeCodeEx.TimeSpan) { return("DateTime." + now + ".TimeOfDay"); } return(GetInitValue(typeCode)); }
public string GetReaderMethod(TypeCodeEx dataType) { switch (dataType) { case TypeCodeEx.Byte: return("GetByte"); case TypeCodeEx.Int16: return("GetInt16"); case TypeCodeEx.Int32: return("GetInt32"); case TypeCodeEx.Int64: return("GetInt64"); case TypeCodeEx.String: return("GetString"); case TypeCodeEx.Boolean: return("GetBoolean"); case TypeCodeEx.Guid: return("GetGuid"); case TypeCodeEx.Decimal: return("GetDecimal"); case TypeCodeEx.SmartDate: return("GetSmartDate"); case TypeCodeEx.DateTime: return("GetDateTime"); case TypeCodeEx.ByteArray: return("GetValue"); case TypeCodeEx.Single: return("GetFloat"); case TypeCodeEx.Double: return("GetDouble"); case TypeCodeEx.Char: return("GetChar"); default: return("GetValue"); } }
public static bool IsNullAllowedOnType(TypeCodeEx type) { switch (type) { case TypeCodeEx.Boolean: case TypeCodeEx.Byte: case TypeCodeEx.Char: case TypeCodeEx.Decimal: case TypeCodeEx.Double: case TypeCodeEx.Guid: case TypeCodeEx.Int16: case TypeCodeEx.Int32: case TypeCodeEx.Int64: case TypeCodeEx.SByte: case TypeCodeEx.Single: case TypeCodeEx.UInt16: case TypeCodeEx.UInt32: case TypeCodeEx.UInt64: case TypeCodeEx.DateTime: case TypeCodeEx.SmartDate: case TypeCodeEx.String: return(true); /* * These are not nullable: * case TypeCodeEx.ByteArray: * case TypeCodeEx.DBNull: * case TypeCodeEx.Empty: * case TypeCodeEx.Object: */ } return(false); }
protected void ResetProperties(DbBindColumn dbc) { if (dbc != null && dbc.Column != null) { _name = dbc.ColumnName; _parameterName = dbc.ColumnName; _propertyType = Util.TypeHelper.GetTypeCodeEx(dbc.Column.ManagedType); } }
protected virtual string GetDataType(TypeCodeEx type) { if (type == TypeCodeEx.ByteArray) { return("Byte[]"); } return(type.ToString()); }
//protected override string GetDataType(TypeCodeEx type) // original public override string GetDataType(TypeCodeEx type) { if (type == TypeCodeEx.ByteArray) { return("Byte()"); } return(type.ToString()); }
public virtual string GetInitValue(TypeCodeEx typeCode) { if (typeCode == TypeCodeEx.Int16 || typeCode == TypeCodeEx.Int32 || typeCode == TypeCodeEx.Int64 || typeCode == TypeCodeEx.Double || typeCode == TypeCodeEx.Decimal || typeCode == TypeCodeEx.Single) { return("0"); } else if (typeCode == TypeCodeEx.String) { return("String.Empty"); } else if (typeCode == TypeCodeEx.Boolean) { return("false"); } else if (typeCode == TypeCodeEx.Byte) { return("0"); } else if (typeCode == TypeCodeEx.Object) { return("null"); } else if (typeCode == TypeCodeEx.Guid) { return("Guid.Empty"); } else if (typeCode == TypeCodeEx.SmartDate) { return("new SmartDate(true)"); } else if (typeCode == TypeCodeEx.DateTime) { return("DateTime.Now"); } else if (typeCode == TypeCodeEx.Char) { return("Char.MinValue"); } else if (typeCode == TypeCodeEx.ByteArray) { return("new Byte[] {}"); } else { return(String.Empty); } }
protected internal string GetReaderMethod(DbType dataType, TypeCodeEx propertyType) { switch (dataType) { case DbType.Byte: return("GetByte"); case DbType.Int16: return("GetInt16"); case DbType.Int32: return("GetInt32"); case DbType.Int64: return("GetInt64"); case DbType.AnsiStringFixedLength: return("GetChar"); case DbType.AnsiString: return("GetString"); case DbType.String: return("GetString"); case DbType.StringFixedLength: return("GetString"); case DbType.Boolean: return("GetBoolean"); case DbType.Guid: return("GetGuid"); case DbType.Currency: return("GetDecimal"); case DbType.Decimal: return("GetDecimal"); case DbType.DateTime: case DbType.Date: return((propertyType == TypeCodeEx.SmartDate) ? "GetSmartDate" : "GetDateTime"); case DbType.Binary: return("GetValue"); case DbType.Single: return("GetFloat"); case DbType.Double: return("GetDouble"); default: return("GetValue"); } }
public static TypeCodeEx[] GetDataColumnTypeCodes(DataTable table) { TypeCodeEx[] colDbTypeAr = new TypeCodeEx[table.Columns.Count]; for (int i = 0; i < table.Columns.Count; i++) { DataColumn dc = table.Columns[i]; if (dc.DataType == GuidType) { colDbTypeAr[i] = TypeCodeEx.Guid; } else if (dc.DataType == ByteArType) { colDbTypeAr[i] = TypeCodeEx.ByteAr; } else { colDbTypeAr[i] = (TypeCodeEx)Type.GetTypeCode(dc.DataType); } } return(colDbTypeAr); }
public static byte[] Serialize(DataTable table) { TypeCodeEx[] colDbTypeAr = new TypeCodeEx[table.Columns.Count]; for (int i = 0; i < table.Columns.Count; i++) { DataColumn dc = table.Columns[i]; if (dc.DataType == GuidType) { colDbTypeAr[i] = TypeCodeEx.Guid; } else if (dc.DataType == ByteArType) { colDbTypeAr[i] = TypeCodeEx.ByteAr; } else { colDbTypeAr[i] = (TypeCodeEx)Type.GetTypeCode(dc.DataType); } } using (MemoryStream memStream = new MemoryStream()) { foreach (DataRow row in table.Rows) { if (row.RowState == DataRowState.Deleted) { continue; } BytesFromRow(row, table.Columns, colDbTypeAr, memStream); } memStream.Flush(); return(memStream.ToArray()); } }
public static bool IsNumeric(this TypeCodeEx type) { switch (type) { case TypeCodeEx.Byte: case TypeCodeEx.Decimal: case TypeCodeEx.Double: case TypeCodeEx.Int16: case TypeCodeEx.Int32: case TypeCodeEx.Int64: case TypeCodeEx.SByte: case TypeCodeEx.Single: case TypeCodeEx.UInt16: case TypeCodeEx.UInt32: case TypeCodeEx.UInt64: return(true); /* * These are not numeric: * case TypeCodeEx.Boolean: * case TypeCodeEx.ByteArray: * case TypeCodeEx.Char: * case TypeCodeEx.CustomType: * case TypeCodeEx.DBNull: * case TypeCodeEx.Empty: * case TypeCodeEx.Guid: * case TypeCodeEx.Object: * case TypeCodeEx.TimeSpan: * case TypeCodeEx.DateTimeOffset: * case TypeCodeEx.DateTime: * case TypeCodeEx.SmartDate: * case TypeCodeEx.String: */ } return(false); }
//protected virtual string GetDataType(TypeCodeEx type) // original public virtual string GetDataType(TypeCodeEx type) { if (type == TypeCodeEx.ByteArray) { return("Byte[]"); } if (type == TypeCodeEx.String) { return("string"); } if (type == TypeCodeEx.Int32) { return("int"); } if (type == TypeCodeEx.Boolean) { return("bool"); } return(type.ToString()); }
public Property(string name, TypeCodeEx type) { _name = name; _propertyType = type; }
public CriteriaProperty(string name, TypeCodeEx type, string parameterName) : base(name, type, parameterName) { }
public CriteriaProperty(string name, TypeCodeEx type) : base(name, type) { }
public virtual string GetInitValue(TypeCodeEx typeCode) { if (typeCode == TypeCodeEx.Byte || typeCode == TypeCodeEx.Int16 || typeCode == TypeCodeEx.Int32 || typeCode == TypeCodeEx.Int64 || typeCode == TypeCodeEx.Double || typeCode == TypeCodeEx.Decimal || typeCode == TypeCodeEx.Single) { return("0"); } if (typeCode == TypeCodeEx.String) { return("string.Empty"); } if (typeCode == TypeCodeEx.Boolean) { return("false"); } if (typeCode == TypeCodeEx.Object) { return("null"); } if (typeCode == TypeCodeEx.Guid) { return("Guid.Empty"); } if (typeCode == TypeCodeEx.SmartDate) { return("new SmartDate(true)"); } if (typeCode == TypeCodeEx.DateTime) { return(GetNowValue(typeCode)); } if (typeCode == TypeCodeEx.DateTimeOffset) { return(GetNowValue(typeCode)); } if (typeCode == TypeCodeEx.TimeSpan) { return(GetNowValue(typeCode)); } if (typeCode == TypeCodeEx.Char) { return("char.MinValue"); } if (typeCode == TypeCodeEx.ByteArray) { return("new byte[] {}"); } return(string.Empty); }
public static void BytesFromRow(DataRow row, DataColumnCollection columns, TypeCodeEx[] colDbTypeAr, MemoryStream memStream) { for (int i = 0; i < columns.Count; i++) { DataColumn dc = columns[i]; object cellVal = row[dc]; TypeCodeEx typeCodeEx = colDbTypeAr[i]; if (cellVal == dc.DefaultValue) { typeCodeEx = TypeCodeEx.Empty; } else if (cellVal == null || DBNull.Value.Equals(cellVal)) { typeCodeEx = TypeCodeEx.DBNull; } Byte[] cellBytes = null; switch (typeCodeEx) { case TypeCodeEx.Empty: case TypeCodeEx.Object: memStream.WriteByte((byte)DataHeader.DefaultValue); break; case TypeCodeEx.DBNull: memStream.WriteByte((byte)DataHeader.DbNull); break; case TypeCodeEx.Boolean: memStream.WriteByte((byte)DataHeader.FixedLenValue); cellBytes = BitConverter.GetBytes((bool)cellVal); memStream.Write(cellBytes, 0, cellBytes.Length); break; case TypeCodeEx.Char: memStream.WriteByte((byte)DataHeader.FixedLenValue); cellBytes = BitConverter.GetBytes((char)cellVal); memStream.Write(cellBytes, 0, cellBytes.Length); break; case TypeCodeEx.SByte: case TypeCodeEx.Byte: memStream.WriteByte((byte)DataHeader.FixedLenValue); memStream.WriteByte((byte)cellVal); break; case TypeCodeEx.Int16: case TypeCodeEx.UInt16: memStream.WriteByte((byte)DataHeader.FixedLenValue); cellBytes = BitConverter.GetBytes((Int16)cellVal); memStream.Write(cellBytes, 0, cellBytes.Length); break; case TypeCodeEx.Int32: case TypeCodeEx.UInt32: memStream.WriteByte((byte)DataHeader.FixedLenValue); cellBytes = BitConverter.GetBytes((Int32)cellVal); memStream.Write(cellBytes, 0, cellBytes.Length); break; case TypeCodeEx.Int64: case TypeCodeEx.UInt64: memStream.WriteByte((byte)DataHeader.FixedLenValue); cellBytes = BitConverter.GetBytes((Int64)cellVal); memStream.Write(cellBytes, 0, cellBytes.Length); break; case TypeCodeEx.Single: memStream.WriteByte((byte)DataHeader.FixedLenValue); cellBytes = BitConverter.GetBytes((float)cellVal); memStream.Write(cellBytes, 0, cellBytes.Length); break; case TypeCodeEx.Double: memStream.WriteByte((byte)DataHeader.FixedLenValue); cellBytes = BitConverter.GetBytes((double)cellVal); memStream.Write(cellBytes, 0, cellBytes.Length); break; case TypeCodeEx.Decimal: { memStream.WriteByte((byte)DataHeader.FixedLenValue); int[] intAr = Decimal.GetBits((Decimal)cellVal); foreach (int decPart in intAr) { cellBytes = BitConverter.GetBytes(decPart); memStream.Write(cellBytes, 0, cellBytes.Length); } } break; case TypeCodeEx.DateTime: memStream.WriteByte((byte)DataHeader.FixedLenValue); cellBytes = BitConverter.GetBytes(((DateTime)cellVal).Ticks); memStream.Write(cellBytes, 0, cellBytes.Length); break; case TypeCodeEx.String: { DBConverter.ToMemoryStream(memStream, (string)cellVal); } break; case TypeCodeEx.Guid: memStream.WriteByte((byte)DataHeader.FixedLenValue); cellBytes = ((Guid)cellVal).ToByteArray(); memStream.Write(cellBytes, 0, cellBytes.Length); break; case TypeCodeEx.ByteAr: { memStream.WriteByte((byte)DataHeader.VariableLenValue); cellBytes = (byte[])cellVal; Byte[] lengthBytes = BitConverter.GetBytes(cellBytes.Length); memStream.Write(lengthBytes, 0, lengthBytes.Length); memStream.Write(cellBytes, 0, cellBytes.Length); } break; } } //foreach column }
public static DbType GetDbType(TypeCodeEx type) { switch (type) { case TypeCodeEx.Boolean: return(DbType.Boolean); case TypeCodeEx.Byte: return(DbType.Byte); case TypeCodeEx.ByteArray: return(DbType.Binary); case TypeCodeEx.Char: return(DbType.StringFixedLength); case TypeCodeEx.SmartDate: case TypeCodeEx.DateTime: return(DbType.DateTime); case TypeCodeEx.Decimal: return(DbType.Decimal); case TypeCodeEx.Double: return(DbType.Double); case TypeCodeEx.Guid: return(DbType.Guid); case TypeCodeEx.Int16: return(DbType.Int16); case TypeCodeEx.Int32: return(DbType.Int32); case TypeCodeEx.Int64: return(DbType.Int64); case TypeCodeEx.SByte: return(DbType.SByte); case TypeCodeEx.Single: return(DbType.Single); case TypeCodeEx.String: return(DbType.String); case TypeCodeEx.UInt16: return(DbType.UInt16); case TypeCodeEx.UInt32: return(DbType.UInt32); case TypeCodeEx.UInt64: return(DbType.UInt64); case TypeCodeEx.Object: return(DbType.Binary); default: return(DbType.String); } }
public static void RowFromBytes(DataRow newRow, DataColumnCollection columns, TypeCodeEx[] colDbTypeAr, MemoryStream memStream) { byte[] fixedLenBuffer = new byte[16]; byte[] stringBuffer = null; for (int i = 0; i < columns.Count; i++) { DataColumn dc = columns[i]; TypeCodeEx typeCodeEx = colDbTypeAr[i]; DataHeader header = (DataHeader)memStream.ReadByte(); switch (header) { case DataHeader.DbNull: if (dc.DefaultValue == null) { continue; } newRow[dc] = DBNull.Value; continue; case DataHeader.DefaultValue: continue; } switch (typeCodeEx) { case TypeCodeEx.Boolean: memStream.Read(fixedLenBuffer, 0, 1); newRow[dc] = BitConverter.ToBoolean(fixedLenBuffer, 0); break; case TypeCodeEx.Char: memStream.Read(fixedLenBuffer, 0, 2); newRow[dc] = BitConverter.ToChar(fixedLenBuffer, 0); break; case TypeCodeEx.SByte: memStream.Read(fixedLenBuffer, 0, 1); newRow[dc] = (sbyte)fixedLenBuffer[0]; break; case TypeCodeEx.Byte: memStream.Read(fixedLenBuffer, 0, 1); newRow[dc] = (Byte)fixedLenBuffer[0]; break; case TypeCodeEx.Int16: memStream.Read(fixedLenBuffer, 0, 2); newRow[dc] = BitConverter.ToInt16(fixedLenBuffer, 0); break; case TypeCodeEx.UInt16: memStream.Read(fixedLenBuffer, 0, 2); newRow[dc] = BitConverter.ToUInt16(fixedLenBuffer, 0); break; case TypeCodeEx.Int32: memStream.Read(fixedLenBuffer, 0, 4); newRow[dc] = BitConverter.ToInt32(fixedLenBuffer, 0); break; case TypeCodeEx.UInt32: memStream.Read(fixedLenBuffer, 0, 4); newRow[dc] = BitConverter.ToUInt32(fixedLenBuffer, 0); break; case TypeCodeEx.Int64: memStream.Read(fixedLenBuffer, 0, 8); newRow[dc] = BitConverter.ToInt64(fixedLenBuffer, 0); break; case TypeCodeEx.UInt64: memStream.Read(fixedLenBuffer, 0, 8); newRow[dc] = BitConverter.ToUInt64(fixedLenBuffer, 0); break; case TypeCodeEx.Single: memStream.Read(fixedLenBuffer, 0, 4); newRow[dc] = BitConverter.ToSingle(fixedLenBuffer, 0); break; case TypeCodeEx.Double: memStream.Read(fixedLenBuffer, 0, 8); newRow[dc] = BitConverter.ToDouble(fixedLenBuffer, 0); break; case TypeCodeEx.Decimal: { int[] intAr = new int[4]; memStream.Read(fixedLenBuffer, 0, 8); intAr[0] = BitConverter.ToInt32(fixedLenBuffer, 0); intAr[1] = BitConverter.ToInt32(fixedLenBuffer, 4); memStream.Read(fixedLenBuffer, 0, 8); intAr[2] = BitConverter.ToInt32(fixedLenBuffer, 0); intAr[3] = BitConverter.ToInt32(fixedLenBuffer, 4); newRow[dc] = new decimal(intAr); } break; case TypeCodeEx.DateTime: memStream.Read(fixedLenBuffer, 0, 8); newRow[dc] = new DateTime(BitConverter.ToInt64(fixedLenBuffer, 0)); break; case TypeCodeEx.String: { memStream.Read(fixedLenBuffer, 0, 4); int length = BitConverter.ToInt32(fixedLenBuffer, 0); if (stringBuffer == null || stringBuffer.Length < length) { stringBuffer = new byte[length]; } int offset = 0; do { offset += memStream.Read(stringBuffer, offset, length); } while(offset < length); newRow[dc] = Encoding.Unicode.GetString(stringBuffer, 0, length); } break; case TypeCodeEx.Guid: memStream.Read(fixedLenBuffer, 0, 16); newRow[dc] = new Guid(fixedLenBuffer); break; case TypeCodeEx.ByteAr: { memStream.Read(fixedLenBuffer, 0, 4); int length = BitConverter.ToInt32(fixedLenBuffer, 0); if (stringBuffer == null || stringBuffer.Length < length) { stringBuffer = new byte[length]; } int offset = 0; do { offset += memStream.Read(stringBuffer, offset, length); } while(offset < length); Byte[] byteArVal = new byte[length]; Buffer.BlockCopy(stringBuffer, 0, byteArVal, 0, length); newRow[dc] = byteArVal; } break; } } //foreach column }
public Property(string name, TypeCodeEx type, string parameterName) { _name = name; _propertyType = type; _parameterName = parameterName; }