System.Data.SqlClient.SqlConvert.ValueTypeToSqlDbType C# (CSharp) Method

ValueTypeToSqlDbType() static private method

static private ValueTypeToSqlDbType ( Type type ) : SqlDbType
type System.Type
return SqlDbType
		internal static SqlDbType ValueTypeToSqlDbType(Type type)
		{
			switch (Type.GetTypeCode(type)) {
				case TypeCode.Boolean: return SqlDbType.Bit;
				case TypeCode.Byte: return SqlDbType.TinyInt;
				case TypeCode.Char: return SqlDbType.Char;
				case TypeCode.DateTime: return SqlDbType.DateTime;
				case TypeCode.DBNull: return SqlDbType.Variant;
				case TypeCode.Decimal: return SqlDbType.Decimal;
				case TypeCode.Double: return SqlDbType.Float;
				case TypeCode.Empty: return SqlDbType.Variant;
				case TypeCode.Int16: return SqlDbType.SmallInt;
				case TypeCode.Int32: return SqlDbType.Int;
				case TypeCode.Int64: return SqlDbType.BigInt;
				default:
				case TypeCode.Object: {
					if (type.Equals(DbTypes.TypeOfByteArray)) return  SqlDbType.VarBinary;
					//if (type.Equals(DbTypes.TypeOfTimespan)) return OleDbType.DBTime;
					if (type.Equals(DbTypes.TypeOfGuid)) return SqlDbType.UniqueIdentifier;

					if (type.IsEnum)
						return ValueTypeToSqlDbType (Enum.GetUnderlyingType (type));

					return SqlDbType.Variant;
				}
				case TypeCode.SByte: return SqlDbType.TinyInt;
				case TypeCode.Single: return SqlDbType.Float;
				case TypeCode.String: return SqlDbType.NVarChar;
				case TypeCode.UInt16: return SqlDbType.SmallInt;
				case TypeCode.UInt32: return SqlDbType.Int;
				case TypeCode.UInt64: return SqlDbType.BigInt;
			}
		}