Ir para conteúdo
Fórum Script Brasil

Lucas Phillip

Veteranos
  • Total de itens

    644
  • Registro em

  • Última visita

Posts postados por Lucas Phillip

  1. Opa, tudo bom?

    Qual versão do EF você está utilizando? As versões mais recentes já fazem o insert de entidades "filhas" automaticamente.

     

    Edit: Nossa, só vi agora que já tem um bom tempo que você postou isso kkkk

  2. Para confirmar algo para você, apenas vendo o código.

    Mas pelo site consigo presumir com alguma confiança que é ASP.NET Webforms. Páginas asp possuem a extensão asp, enquanto asp.net possuem a extensão aspx. Então sabemos que é ASP.NET. Agora páginas criadas utilizando ASP.NET MVC 99.9% das vezes possuem URL que se assemelham às url rewrite.

    Agora, tirando isso, é impossível descobrir o motivo da lentidão de um site apenas navegando por ela. Como você mesmo falou, existem vários motivos. As querys do banco podem estar erradas, o servidor onde o site está hospedado pode ser ruim ou estar sobrecarregado...

    Se você tiver acesso ao código, o próprio visual studio possui ferramentas de profiler, que irão analisar a performance do código e falar quanto tempo cada método, query, etc demora para ser executado.

    Abs,

    Lucas

  3. Olha só. Ambos estão certos.

    Não é possível aumentar o tamanho de um array. Mas você pode utilizar o método "resize" para aumentar o tamanho do array.

    Parece estranho, mas funciona assim porque o tamanho de um array realmente não pode ser modificado. O que o método faz é copiar todo seu array para um novo local na memória com o novo tamanho desejado, dando a impressão de que o tamanho foi modificado. Na verdade, você tem um novo array com os mesmos valores de antes e o novo espaço alocado.

    Por isso o método resize tem um custo mt alto. Se você sabe exatamente o tamanho do seu array, utilize um array. Se você precisa de um tamanho dinâmico, utilize uma List (como o ArrayList, ou de preferencia os genéricos como a List<>)

    Abs,

    Lucas

  4. Opa, tudo joia?

    Que recurso você está tentando acessar dentro do diretório do framework?

    Posso estar enganado, mas acredito que você não tenha permissão para acessar a pasta "Program Files". O .NET possui basicamente 2 níveis de segurança. O CAS (Code Access Security) e o RBS (Role Based Security). O CAS é o proprio programador que define a segurança. Já o RBS é definido pelo nível de acesso que sua conta de usuário possui.

    Por exemplo, você possui uma conta de usuário (sem acesso de administrador) e quer tentar acessar um recurso que requer um acesso de adm, mesmo que você libere no seu programa o acesso (CAS), o windows (RBS) não vai deixar você utilizar o recurso.

    Eu imagino que esteja acontecendo exatamente isso. Presumindo que você esteja utilizando uma hospedagem comum (não dedicada), o acesso que você tem é "público" e vai ter o mínimo possível de permissão. Você provavelmente deve pode acessar apenas os arquivos dentro do seu proprio site. Como no seu computador você provavelmente acessa como administrador, quando você testa no VS2010 não da erro.

    Bom, se realmente for esse o problema, não tem solução não. Por isso eu fiz aquela pergunta no começo, para saber se há uma outra maneira de alcançar o que você quer.

    Abs

  5. Olha só... Possível é sim, mas da um trabalho desgraçado :/

    Você teria que usar um "sniffer" para "xeretar" os pacotes que são trocados entre o cliente e o servidor (que provavelmente estão criptografados). Sabendo como o cliente e o servidor se comunicam você poderia criar um programa para enviar os pacotes necessários para fazer o que você quisesse.

    Bom, só lembro que isso é contra as regras da grande maioria dos jogos e se o pessoal do jogo descobrir provavelmente vão te banir.

  6. Opa, tudo joia?

    Se nenhuma das duas variáveis está recebendo um valor é porque ambos file_exists estão retornando false. Ou seja, nenhum dos banners foi encontrado.

    Não sei o que tem em $_SESSION['banner1'] ou $_SESSION['banner2'], mas o ideal é que você utilize o caminho completo para o arquivo. O php fornece uma função que retorna o diretório raiz para você: $_SERVER['DOCUMENT_ROOT'].

    Será que algo como

    if (file_exists($_SERVER['DOCUMENT_ROOT']."/".$_SESSION['banner1'].$cp['banner1]) ) {
        $arquivo_nome1 = $cp['banner1'];
    }
    if (file_exists($_SERVER['DOCUMENT_ROOT']."/".$_SESSION['banner2].$cp2['banner2]) ) {
        $arquivo_nome2 = $cp2['banner2'];
    }

    funciona?

  7. Acho que não tem muita solução para isso não. Programação orientada a objetos né... Você tem de criar objetos hehehe ^^

    Você queria criar uma classe para englobar as outras para facilidade? Ou porque você tem está instanciando elas toda hora?

    Por que no segundo caso você poderia criá-las estáticas.

  8. Olá Ricardo, tudo joia?

    Seguinte.. No .NET, uma classe não pode herdar de mais de uma outra classe. Se você deseja uma classe altamente polimórfica, eu recomendo que você dê uma olhada em "Interfaces".

    Bom, no C# uma herança é criada com a seguinte sintaxe:

    public class mother
    {
    }
    
    public class child : mother
    {
    }
    O código que você postou está criando um novo objeto com a classe ControlClass. Não tem nada a ver com herança. Até onde eu entendi seu código, não sei se é necessário você utilizar herança. Pode simplesmente criar novos objetos das classes e utilizá-los exatamente da maneira como você exemplificou. Algo como:
    public class Dados
    {
    public void ExecuteInsert()
    {
    }
    }
    
    public class ControlClass
    {
    public Dados dados = new Dados();
    public void AcessarDados()
    {
    dados.ExecuteInsert();
    }
    }

    Ajudou?

    Abraços

  9. Olha, que bom que você já resolveu o problema. Mas como parece que você não entendeu muito bem o porque, deixa eu tentar explicar.

    Quando você utiliza ++ em um valor, ele automaticamente aumenta o valor em 1 correto? No seu loop, você definia o valor máximo utilizando ++. Então, se o loop fosse executado 20 vezes, o máximo seria de 20.

    O problema é que no 2 loop, que preenche o value do progressbar, você incrementa o campo i duas vezes. Ou seja, no primeiro loop, i seria 2 ao invés de 1, no segundo loop 4 ao invés de 2 e assim por diante. Então, quando o loop estiver fazendo sua décima execução, o valor de i já será 20 e a próxima irá gerar erro.

    Se você retirasse o ++ de i para escrever no textLer, provalmente funcionará.

    while ((SQL = LerSQL.ReadLine()) !=null)
                    {
                        Dados.ExecuteSQL(SQL.ToString());
                        progressBar1.Value = i++;
                        txtLer.Text = i.ToString() + " - linhas já foram atualizadas";
                    }

  10. Olha só.. Eu teorizei isso a um tempo atrás, mas não tive tempo de colocar em prova a idéia para saber se realmente iria funcionar.

    Na verdade, isso que você quer é meio que quase impossível de se fazer. Teria que usar um pouco de gambiarra para poder funcionar. A idéia seria a seguinte:

    Não redirecione o usuário à página de votação. Ao invés, crie uma página com 2 frames, um seu (por exemplo, no topo com tamanho de 1px) e o da página de votação embaixo. O seu frame terá um tamanho tão pequeno que se você colocar na mesma cor do site de votação, o usuário nem irá perceber.

    Agora vem a gambiarra. Você colocaria na página mãe uma função javascript que procuraria por padrões de texto na página filha, que no seu caso é a página de voto. Então se ao votar aparece o texto "Thanks for voting" ou qualquer coisa assim, você manda procurar por esse texto a cada X segundos. O usuário votando e o script verificando o texto, você utilizaria de Ajax para enviar um comando ao servidor de que o IP do usuário confirmou o voto. Seria interessante colocar um alert também para avisar ao usuário que o voto foi computado no SEU sistema e pronto! :)

    Bom, igual eu falei.. isso é apenas teorico. Não tenho nem noção se vai funcionar ou não. Posso ter cometido algum erro com a idéia e não percebi.

    Se você for tentar, por favor avise sobre os resultados ;)

  11. Olha, isso que você está querendo fazer é dificil (desculpe a expressão) pra c******. Até onde eu sei, não tem uma função "AcheImagem" que procura pelo padrão de uma imagem dentro de outra para comparar se a segunda está inserida na primeira. Teria que fazer tudo no braço.

    Tem como você explicar por qual motivo você quer fazer isso? Dependendo pode existir um caminho mais fácil.

  12. Olha só.. Não sei se vai corrigir o problema, mas eu acredito que está mexendo apenas o último porque você não está utilizando a referência ao label clicado que é passada como parâmetro para mmove.

    Testa ai com algo tipo e vê se modifica algo:

    private void mmove(object sender, MouseEventArgs e)
    {
    Label l = (Label)sender;
    if (e.Button == MouseButtons.Left & flag == true)
    {
    l.Location = new Point(l.Left + (e.X - ptInicial.X),
    l.Top + (e.Y - ptInicial.Y));
    double px = l.Location.X * 0.264;
    double py = l.Location.Y * 0.264;
    px = Math.Round(px, 2);
    py = Math.Round(py, 2);
    itemXYToolStripMenuItem.Text = "Item X: " + px + " Y: " + py;
    }
    }
    Agora, se eu fosse você, eu colocaria para conferir se o botão do clique foi o esquerdo no evento do clique, e não no evento do movimento. Do jeito que está agora, enquanto o mouse se move o script tem q ficar fazendo a conferência (inútil) se o botão é o esquerdo ou não. Como o movimento já começou, então com certeza o botão esquerdo foi utilizado.
    private void mouseclicked(object sender, MouseEventArgs e)
    {
    if (e.Button == MouseButtons.Left)
    {
    flag = true;
    ptInicial = e.Location;
    }
    }

    Assim, no mmove você usaria apenas if (flag == true)

    Até

    EDIT: Olha, eu tava relendo aqui. Esse meu segundo comentário só tem fundamento se você estiver fazendo algo drag-and-drop. Se não for, não faz diferença a maneira que for feita.

  13. Dessa maneira você não consegue... Mas você não tinha informado que queria inseria uma imagem como background :wacko:

    Tente dessa forma:

    Private Sub LoadBGImage(ByVal ImageName As String)
            Me.BackgroundImage = New Bitmap(String.Format("{0}\{1}", Application.StartupPath, ImageName))
    End Sub
    Basta chamar LoadBGImage e coloque no parâmetro o nome da imagem que você quer. Um detalhe. Nesse exemplo, a imagem deverá estar na mesma pasta que o programa. Caso você queria utilizar uma imagem em outro pasta, pode utilizar
    Me.BackgroundImage = New Bitmap(String.Format("C:\MinhaPasta\{0}", ImageName))

  14. Olha só esse metodo que eu fiz. Está bem simples, mas faz o que você quer. Se precisar de mais coisas, é só ir aprimorando.

    Private Sub LoadImage()
            Dim pb As New PictureBox
            'Caminho para a imagem
            pb.Image = New Bitmap(String.Format("{0}\Image.jpg", Application.StartupPath))
            'Posição da imagem no formulário
            pb.Location = New Point(5, 5)
            'Largura da Imagem
            pb.Width = 200
            'Altura da Imagem
            pb.Height = 200
    
            'Adiciona a imagem ao formulário
            Controls.Add(pb)
        End Sub

  15. Se você teve que colocar dentro de um while pra funcionar direito, acredito que a sua query SQL está retornando mais de um campo. Por que se tivesse retornando apenas um, não faria diferença nenhuma utilizar o while ou não.

    Dá uma olhada ai. Talvez pode existir mais de um campo com COD igual.

    Agora, não entendi sua pergunta... Você que fala pra nós o que está dando de errado e agente tenta ajudar. Um pedaço de script igual você mandou não tem como ser analisádo não.

×
×
  • Criar Novo...