internal static string DbTypeToTypeName(SQLiteConnection connection, DbType dbType, SQLiteConnectionFlags flags)
        {
            SQLiteDbTypeMapping sQLiteDbTypeMapping;
            SQLiteDbTypeMapping sQLiteDbTypeMapping1;
            string str;
            string defaultTypeName = null;

            if (connection != null)
            {
                flags |= connection.Flags;
                if ((flags & SQLiteConnectionFlags.UseConnectionTypes) == SQLiteConnectionFlags.UseConnectionTypes)
                {
                    SQLiteDbTypeMap sQLiteDbTypeMap = connection._typeNames;
                    if (sQLiteDbTypeMap != null && sQLiteDbTypeMap.TryGetValue(dbType, out sQLiteDbTypeMapping))
                    {
                        return(sQLiteDbTypeMapping.typeName);
                    }
                }
                defaultTypeName = connection.DefaultTypeName;
            }
            if ((flags & SQLiteConnectionFlags.NoGlobalTypes) == SQLiteConnectionFlags.NoGlobalTypes)
            {
                if (defaultTypeName != null)
                {
                    return(defaultTypeName);
                }
                defaultTypeName = SQLiteConvert.GetDefaultTypeName(connection);
                SQLiteConvert.DefaultTypeNameWarning(dbType, flags, defaultTypeName);
                return(defaultTypeName);
            }
            lock (SQLiteConvert._syncRoot)
            {
                if (SQLiteConvert._typeNames == null)
                {
                    SQLiteConvert._typeNames = SQLiteConvert.GetSQLiteDbTypeMap();
                }
                if (!SQLiteConvert._typeNames.TryGetValue(dbType, out sQLiteDbTypeMapping1))
                {
                    if (defaultTypeName != null)
                    {
                        return(defaultTypeName);
                    }
                    defaultTypeName = SQLiteConvert.GetDefaultTypeName(connection);
                    SQLiteConvert.DefaultTypeNameWarning(dbType, flags, defaultTypeName);
                    return(defaultTypeName);
                }
                else
                {
                    str = sQLiteDbTypeMapping1.typeName;
                }
            }
            return(str);
        }