System.Data.SqlClient.MetaType.GetSqlDataType C# (CSharp) Method

GetSqlDataType() static private method

static private GetSqlDataType ( int tdsType, UInt32 userType, int length ) : MetaType
tdsType int
userType System.UInt32
length int
return MetaType
        internal static MetaType GetSqlDataType(int tdsType, UInt32 userType, int length)
        {
            switch (tdsType)
            {
                case TdsEnums.SQLMONEYN: return ((4 == length) ? s_metaSmallMoney : s_metaMoney);
                case TdsEnums.SQLDATETIMN: return ((4 == length) ? s_metaSmallDateTime : s_metaDateTime);
                case TdsEnums.SQLINTN: return ((4 <= length) ? ((4 == length) ? s_metaInt : s_metaBigInt) : ((2 == length) ? s_metaSmallInt : s_metaTinyInt));
                case TdsEnums.SQLFLTN: return ((4 == length) ? s_metaReal : s_metaFloat);
                case TdsEnums.SQLTEXT: return MetaText;
                case TdsEnums.SQLVARBINARY: return s_metaSmallVarBinary;
                case TdsEnums.SQLBIGVARBINARY: return MetaVarBinary;

                case TdsEnums.SQLVARCHAR:           //goto TdsEnums.SQLBIGVARCHAR;
                case TdsEnums.SQLBIGVARCHAR: return s_metaVarChar;

                case TdsEnums.SQLBINARY:            //goto TdsEnums.SQLBIGBINARY;
                case TdsEnums.SQLBIGBINARY: return ((TdsEnums.SQLTIMESTAMP == userType) ? s_metaTimestamp : s_metaBinary);

                case TdsEnums.SQLIMAGE: return MetaImage;

                case TdsEnums.SQLCHAR:              //goto TdsEnums.SQLBIGCHAR;
                case TdsEnums.SQLBIGCHAR: return s_metaChar;

                case TdsEnums.SQLINT1: return s_metaTinyInt;

                case TdsEnums.SQLBIT:               //goto TdsEnums.SQLBITN;
                case TdsEnums.SQLBITN: return s_metaBit;

                case TdsEnums.SQLINT2: return s_metaSmallInt;
                case TdsEnums.SQLINT4: return s_metaInt;
                case TdsEnums.SQLINT8: return s_metaBigInt;
                case TdsEnums.SQLMONEY: return s_metaMoney;
                case TdsEnums.SQLDATETIME: return s_metaDateTime;
                case TdsEnums.SQLFLT8: return s_metaFloat;
                case TdsEnums.SQLFLT4: return s_metaReal;
                case TdsEnums.SQLMONEY4: return s_metaSmallMoney;
                case TdsEnums.SQLDATETIM4: return s_metaSmallDateTime;

                case TdsEnums.SQLDECIMALN:          //goto TdsEnums.SQLNUMERICN;
                case TdsEnums.SQLNUMERICN: return MetaDecimal;

                case TdsEnums.SQLUNIQUEID: return s_metaUniqueId;
                case TdsEnums.SQLNCHAR: return s_metaNChar;
                case TdsEnums.SQLNVARCHAR: return MetaNVarChar;
                case TdsEnums.SQLNTEXT: return MetaNText;
                case TdsEnums.SQLVARIANT: return s_metaVariant;
                case TdsEnums.SQLUDT: return MetaUdt;
                case TdsEnums.SQLXMLTYPE: return MetaXml;
                case TdsEnums.SQLTABLE: return s_metaTable;
                case TdsEnums.SQLDATE: return s_metaDate;
                case TdsEnums.SQLTIME: return MetaTime;
                case TdsEnums.SQLDATETIME2: return s_metaDateTime2;
                case TdsEnums.SQLDATETIMEOFFSET: return MetaDateTimeOffset;

                case TdsEnums.SQLVOID:
                default:
                    Debug.Assert(false, "Unknown type " + tdsType.ToString(CultureInfo.InvariantCulture));
                    throw SQL.InvalidSqlDbType((SqlDbType)tdsType);
            }// case
        }