Inquiridor
RadioButtonList responde após 1 minuto

Pergunta
-
Como posso mehorar essa performance? Como melhorar esse código? Além do radiobuttonlist, um dropdownlist que simplesmente seleciona a UF e retorna em outro DropDownList com os município também esta levando 1 minuto para o carregamento.
''' <summary> ''' Direciona para cada View conforme as categorias de cadastro: Endereço, Pessoa Jurídica ou Pessoa Física ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> ''' <remarks></remarks> Protected Sub RadioButtonList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles rblCategoriaCadastro.SelectedIndexChanged btnInserirEnd.Enabled = True btnPesquisarEnd.Enabled = True txtPesquisaEnd.Enabled = True btnInserirPJ.Enabled = True btnPesquisarPJ.Enabled = True txtPesquisaPJ.Enabled = True btnInserirUA.Enabled = True btnPesquisarUA.Enabled = True txtPesquisaUA.Enabled = True btnInserirUS.Enabled = True btnPesquisarUS.Enabled = True txtPesquisaUS.Enabled = True btnInserirPF.Enabled = True btnPesquisarPF.Enabled = True txtPesquisaPF.Enabled = True btnInserirUsu.Enabled = True btnPesquisarUsu.Enabled = True txtPesquisaUsu.Enabled = True btnInserirUsu.Enabled = True btnPesquisarUsu.Enabled = True txtPesquisaUsu.Enabled = True If rblCategoriaCadastro.SelectedIndex = 0 Then mtvCadastro.ActiveViewIndex = 0 ElseIf rblCategoriaCadastro.SelectedIndex = 1 Then mtvCadastro.ActiveViewIndex = 1 TabContainerPJ.ActiveTabIndex = 0 CargaddlPJEnd() CargaddlPJEnd0() CargaddlPJEnd1() ElseIf rblCategoriaCadastro.SelectedIndex = 2 Then mtvCadastro.ActiveViewIndex = 4 TabContainerPF.ActiveTabIndex = 0 CargaddlPFEnd() CargaNomeTrab() CargaNomeUsu() End If End Sub Private Sub CargaddlPJEnd() DSet.Tables.Clear() ddlPJEnd.Items.Clear() Dadapter.SelectCommand = New OleDbCommand("SELECT tipo + ' ' + logradouro + ',' + numero + ' - ' + municipio as DESCRICAO, codendereco FROM tbCadEndereco ORDER BY tipo,logradouro", New OleDbConnection(My.Settings.SIAConecte)) Dadapter.Fill(DSet, "TBEndPJ") ddlPJEnd.DataSource = DSet.Tables("TBEndPJ") ddlPJEnd.DataTextField = ("DESCRICAO") ddlPJEnd.DataValueField = ("codendereco") ddlPJEnd.DataBind() ddlPJEnd.Items.Insert(0, "") ddlPJEnd.SelectedIndex = 0 End Sub Protected Sub ddlPJEnd_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlPJEnd.SelectedIndexChanged lblCodEndPJ.Text = ddlPJEnd.SelectedValue() End Sub Private Sub CargaddlPJEnd0() DSet.Tables.Clear() ddlPJEnd0.Items.Clear() Dadapter.SelectCommand = New OleDbCommand("SELECT tipo + ' ' + logradouro + ',' + numero + ' - ' + municipio as DESCRICAO, codendereco FROM tbCadEndereco ORDER BY logradouro", New OleDbConnection(My.Settings.SIAConecte)) Dadapter.Fill(DSet, "TBEndUA") ddlPJEnd0.DataSource = DSet.Tables("TBEndUA") ddlPJEnd0.DataTextField = ("DESCRICAO") ddlPJEnd0.DataValueField = ("codendereco") ddlPJEnd0.DataBind() ddlPJEnd0.Items.Insert(0, "") ddlPJEnd0.SelectedIndex = 0 End Sub Protected Sub ddlPJEnd0_SelectedIndexChanged1(sender As Object, e As EventArgs) Handles ddlPJEnd0.SelectedIndexChanged lblCodEndUA.Text = ddlPJEnd0.SelectedValue() End Sub Private Sub CargaddlPJEnd1() DSet.Tables.Clear() ddlPJEnd1.Items.Clear() Dadapter.SelectCommand = New OleDbCommand("SELECT tipo + ' ' + logradouro + ',' + numero + ' - ' + municipio as DESCRICAO, codendereco FROM tbCadEndereco ORDER BY logradouro", New OleDbConnection(My.Settings.SIAConecte)) Dadapter.Fill(DSet, "TBEndUS") ddlPJEnd1.DataSource = DSet.Tables("TBEndUS") ddlPJEnd1.DataTextField = ("DESCRICAO") ddlPJEnd1.DataValueField = ("codendereco") ddlPJEnd1.DataBind() ddlPJEnd1.Items.Insert(0, "") ddlPJEnd1.SelectedIndex = 0 End Sub Protected Sub ddlPJEnd1_SelectedIndexChanged1(sender As Object, e As EventArgs) Handles ddlPJEnd1.SelectedIndexChanged lblCodEndUS.Text = ddlPJEnd1.SelectedValue() End Sub Private Sub CargaddlPFEnd() DSet.Tables.Clear() ddlPFEnd2.Items.Clear() Dadapter.SelectCommand = New OleDbCommand("SELECT tipo + ' ' + logradouro + ',' + numero + ' - ' + municipio as DESCRICAO, codendereco FROM tbCadEndereco ORDER BY logradouro", New OleDbConnection(My.Settings.SIAConecte)) Dadapter.Fill(DSet, "TBEndPF") ddlPFEnd2.DataSource = DSet.Tables("TBEndPF") ddlPFEnd2.DataTextField = ("DESCRICAO") ddlPFEnd2.DataValueField = ("codendereco") ddlPFEnd2.DataBind() ddlPFEnd2.Items.Insert(0, "") ddlPFEnd2.SelectedIndex = 0 End Sub Protected Sub ddlPFEnd2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlPFEnd2.SelectedIndexChanged lblCodEndPF.Text = ddlPFEnd2.SelectedValue() End Sub Private Sub CargaNomeTrab() DSet.Tables.Clear() ddlNomeTrab.Items.Clear() Dadapter.SelectCommand = New OleDbCommand("SELECT nome + ' ' + sobrenome as NomeCompleto, codigoPF FROM tbCadPessoaFisica ORDER BY nome", New OleDbConnection(My.Settings.SIAConecte)) Dadapter.Fill(DSet, "TBNomeTrab") ddlNomeTrab.DataSource = DSet.Tables("TBNomeTrab") ddlNomeTrab.DataTextField = ("NomeCompleto") ddlNomeTrab.DataValueField = ("codigoPF") ddlNomeTrab.DataBind() ddlNomeTrab.Items.Insert(0, "") ddlNomeTrab.SelectedIndex = 0 End Sub Protected Sub ddlNomeTrab_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlNomeTrab.SelectedIndexChanged lblCodPFTrab.Text = ddlNomeTrab.SelectedValue() End Sub Private Sub CargaNomeUsu() DSet.Tables.Clear() ddlNomeUsu.Items.Clear() Dadapter.SelectCommand = New OleDbCommand("SELECT nome + ' ' + sobrenome as NomeCompleto, codigoPF FROM tbCadPessoaFisica ORDER BY nome", New OleDbConnection(My.Settings.SIAConecte)) Dadapter.Fill(DSet, "TBNomeUsu") ddlNomeUsu.DataSource = DSet.Tables("TBNomeUsu") ddlNomeUsu.DataTextField = ("NomeCompleto") ddlNomeUsu.DataValueField = ("codigoPF") ddlNomeUsu.DataBind() ddlNomeUsu.Items.Insert(0, "") ddlNomeUsu.SelectedIndex = 0 End Sub Protected Sub ddlNomeUsu_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlNomeUsu.SelectedIndexChanged lblCodPFUsu.Text = ddlNomeUsu.SelectedValue() End Sub
Todas as Respostas
-
-
-
-
Veja é um banco com os estados e os municípios do Brasil, como qualquer cadastro.
Protected Sub ddlUF_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlUF.SelectedIndexChanged DSet.Tables.Clear() ddlMun.Items.Clear() Dadapter.SelectCommand = New OleDbCommand("SELECT MUNNOME FROM tbCadmun A, tbCaduf B WHERE A.UFCOD = B.UFCOD AND B.UFNOME = '" & ddlUF.Text & "' ORDER BY MUNNOME", New OleDbConnection(My.Settings.SIADSConecte)) Dadapter.Fill(DSet, "TBMUN") ddlMun.DataSource = DSet.Tables("TBMUN") ddlMun.DataTextField = ("MUNNOME") ddlMun.DataBind() End Sub
- Editado Wilson Boris quarta-feira, 13 de junho de 2012 12:37
-
Samuel, como é possível um retorno da abrangência geográfica, como no site abaixo:
-
Dá uma verificada no tamanho da viewstate. Talves ela esteja muito grande.
Você pode ver isso através desse plugin para chrome: https://chrome.google.com/webstore/detail/lidplipfigoldfaeaglmkkjphmdncama
http://samuelcazelli.blogspot.com/
-
-
-
-
-
-
-
-
http://www.kinghost.com.br Meu Plano é ASP MEGA
-
-
-
-
-
-
Não entendi, como a página está com 8,57 KB? E os valores que você postou lá em cima?
Se for da view state que estiver com 1 mb, vc vai ter que fazer mudanças porque 1 mega de ViewState é muita coisa.
A cada postback o usuário vai ter que fazer o upload dessa ViewState, o que acaba sendo bem custoso. Principalmente porque a velocidade de upload sempre é bem menor do que a de upload.
http://samuelcazelli.blogspot.com/
-
Samuel tentei passar um trecho da pagina html, mas acho que deu problema. A pagina tem um menu e o RadioButtonList com tres opções para chamar a Multiview com tres views onde estão os formulários. Desculpe se não estou claro.
@ Page Language="vb" AutoEventWireup="false" CodeBehind="CADASTRO.aspx.vb" Inherits="BRA_SIA.CADASTRO" %> <title></title><style type="text/css">.style22 { width: 100%; height: 30px; } .style7 { color: #808080; height: 23px; } .style25 { height: 24px; } .style6 { height: 23px; width: 937px; } .style39 { width: 481px; height: 22px; } .style64 { height: 23px; } .style67 { width: 344px; } .style71 { height: 23px; } .style89 { height: 23px; width: 273px; } .style91 { width: 1754px; height: 23px; } .style101 { height: 23px; width: 344px; } .style109 { width: 100%; } .style110 { color: #666666; } .style113 { height: 23px; width: 383px; } .style119 { } .style120 { } .style122 { width: 355px; height: 23px; } .style123 { width: 290px; height: 23px; } .style126 { width: 293px; height: 22px; } .style127 { height: 22px; } .style128 { width: 358px; height: 24px; } .style130 { height: 47px; } .style131 { width: 358px; height: 47px; } .style132 { width: 337px; height: 47px; } .style133 { width: 358px; height: 22px; } .style134 { width: 337px; height: 22px; } .style135 { height: 21px; } .style137 { height: 68px; } .style140 { width: 290px; } .style141 { width: 337px; height: 24px; } </style>
<form id="form1" runat="server"><center><asp:toolkitscriptmanager id="ToolkitScriptManager1" runat="server"></asp:toolkitscriptmanager> <asp:panel Width="950px" id="Panel1" runat="server"><asp:updatepanel id="UpdatePanel3" runat="server"><contenttemplate><asp:panel Width="930px" id="Panel17" runat="server"></center></form><asp:image Height="80px" ImageUrl="~/Imagens/EQUILIBRIO_logo_nova.jpg" Width="160px" id="Image1" runat="server"></asp:image> PRINCIPAL| CADASTRO | ATENDIMENTO| ENCAMINHAMENTO | RELATÓRIO | LOGIN <asp:image Height="80px" ImageUrl="~/Imagens/BRA_marca.jpg" Width="80px" id="Image2" runat="server"></asp:image>
<asp:panel BackColor="#CCCCCC" GroupingText="CADASTRO" Height="69px" HorizontalAlign="Center" Width="940px" id="Panel2" runat="server" style="text-align:left;color:#000000;"><asp:updatepanel id="UpdatePanel4" runat="server"><contenttemplate><asp:radiobuttonlist AppendDataBoundItems="True" AutoPostBack="True" BackColor="White" Font-Size="Larger" RepeatDirection="Horizontal" ToolTip="Escolha uma opção para cadastro." Width="910px" id="rblCategoriaCadastro" runat="server"></asp:radiobuttonlist> </contenttemplate> </asp:updatepanel>
<asp:updatepanel id="UpdatePanel1" runat="server"><contenttemplate><asp:multiview id="mtvCadastro" runat="server"><asp:view id="vwEndereco" runat="server"><asp:panel BackColor="#CCCCCC" GroupingText="ENDEREÇO" Height="806px" HorizontalAlign="Left" Width="940px" id="Panel3" runat="server"><asp:updatepanel id="UpdatePanel2" runat="server"><contenttemplate> <asp:button Height="30px" Text="Inserir" ToolTip="Clique para inserir novo registro" Width="70px" id="btnInserirEnd" runat="server" style="font-style:italic;"><asp:button Height="30px" Text="Alterar" ToolTip="Clique para alterar ou complementar registro existente." Width="70px" id="btnAlterarEnd" runat="server" style="font-style:italic;"><asp:button Height="30px" Text="Excluir" ToolTip="Clique para excluir um registro." Width="70px" id="btnExcluirEnd" runat="server" style="font-style:italic;"></asp:button></asp:button></asp:button> <asp:button Height="30px" Text="Gravar" ToolTip="Clique para gravar as inserções, alterações ou exclusões." ValidationGroup="A" Width="70px" id="btnGravarEnd" runat="server" style="font-style:italic;"><asp:button Height="30px" Text="Cancelar" ToolTip="Clique para cancelar sua operação." Width="70px" id="btnCancelarEnd" runat="server" style="font-style:italic;"></asp:button></asp:button> <asp:textbox BackColor="#F4F4F4" ToolTip="Digite as letras iniciais para pesquisa." Width="280px" id="txtPesquisaEnd" runat="server" style="margin-right:0px;"></asp:textbox><asp:button Height="30px" Text="Pesquisar" ToolTip="Clique para pesquisar seus registros." Width="75px" id="btnPesquisarEnd" runat="server" style="font-style:italic;"></asp:button> Situação:<asp:requiredfieldvalidator ControlToValidate="rblSituacao" ErrorMessage="Situação" ForeColor="Red" ValidationGroup="A" id="RequiredFieldValidator8" runat="server">*</asp:requiredfieldvalidator> <asp:radiobuttonlist BackColor="White" Font-Size="Small" RepeatColumns="2" Width="287px" id="rblSituacao" runat="server" style="color:#333333;font-size:x-small;"></asp:radiobuttonlist> Tipo:<asp:requiredfieldvalidator ControlToValidate="rblTipo" EnableTheming="True" ErrorMessage="Tipo" ForeColor="Red" ValidationGroup="A" id="RequiredFieldValidator6" runat="server">*</asp:requiredfieldvalidator> <asp:radiobuttonlist BackColor="White" Font-Size="Small" RepeatColumns="3" Width="287px" id="rblTipo" runat="server" style="color:#333333;font-size:x-small;"></asp:radiobuttonlist> Logradouro:<asp:requiredfieldvalidator ControlToValidate="txtLogra" ErrorMessage="Logradouro" ForeColor="Red" ValidationGroup="A" id="RequiredFieldValidator7" runat="server">*</asp:requiredfieldvalidator> <asp:textbox Width="280px" id="txtLogra" runat="server"></asp:textbox>
Número:<asp:requiredfieldvalidator ControlToValidate="txtNum" ErrorMessage="Número" ForeColor="Red" ValidationGroup="A" id="RequiredFieldValidator88" runat="server">*</asp:requiredfieldvalidator> <asp:textbox BackColor="White" Width="280px" id="txtNum" runat="server"></asp:textbox> Bairro ou Localidade:<asp:requiredfieldvalidator ControlToValidate="txtBairroLocal" ErrorMessage="Bairro ou Localidade" ForeColor="Red" ValidationGroup="A" id="RequiredFieldValidator5" runat="server">*</asp:requiredfieldvalidator>
<asp:textbox BackColor="White" ValidationGroup="A" Width="280px" id="txtBairroLocal" runat="server"></asp:textbox>Telefone Residencial:<asp:textbox Width="280px" id="txtTelRes" runat="server"></asp:textbox> Telefone Comercial:<asp:textbox BackColor="White" Width="280px" id="txtTelCom" runat="server"></asp:textbox> Telefone Celular:<asp:textbox BackColor="White" Width="280px" id="txtTelCel" runat="server"></asp:textbox> Estado:<asp:requiredfieldvalidator ControlToValidate="ddlUF" ErrorMessage="Estado" ForeColor="Red" ValidationGroup="A" id="RequiredFieldValidator89" runat="server">*</asp:requiredfieldvalidator> <asp:dropdownlist AppendDataBoundItems="True" AutoPostBack="True" BackColor="White" Width="285px" id="ddlUF" runat="server" style="color:#333333;"><asp:listitem></asp:listitem></asp:dropdownlist> Município:<asp:requiredfieldvalidator ControlToValidate="ddlMun" ErrorMessage="Município" ForeColor="Red" ValidationGroup="A" id="RequiredFieldValidator11" runat="server">*</asp:requiredfieldvalidator> <asp:dropdownlist AppendDataBoundItems="True" BackColor="White" Width="285px" id="ddlMun" runat="server" style="color:#333333;"><asp:listitem></asp:listitem></asp:dropdownlist> Email:<asp:textbox BackColor="White" Width="280px" id="txtEmail" runat="server"></asp:textbox> Home Page:<asp:textbox BackColor="White" Width="280px" id="txtHome" runat="server"></asp:textbox> Nome para Contato:<asp:requiredfieldvalidator ControlToValidate="txtContato" ErrorMessage="Nome p/ contato" ForeColor="Red" ValidationGroup="A" id="RequiredFieldValidator90" runat="server">*</asp:requiredfieldvalidator> <asp:textbox BackColor="White" Width="280px" id="txtContato" runat="server"></asp:textbox> Ponto de Referência:<asp:textbox Width="280px" id="txtPontoRef" runat="server"></asp:textbox> Coordenada geográfica:<asp:textbox Width="280px" id="txtCoordGeo" runat="server"></asp:textbox> Observação:<asp:textbox BackColor="White" TextMode="MultiLine" Width="910px" id="txtObservaEnd" runat="server"></asp:textbox><asp:label id="Label1" runat="server"></asp:label> <asp:panel BackColor="#CCCCCC" GroupingText="Manutenção do registro de endereços" ToolTip="Clique em Pesquisar." Width="920px" id="Panel11" runat="server"> <asp:label id="Label2" runat="server"></asp:label><asp:label id="Label16" runat="server"></asp:label> <asp:gridview CellPadding="4" ForeColor="#333333" GridLines="None" PageSize="5" ToolTip="Selecione o registro desejado para alteração ou exclusão." Width="543px" id="gvwEnd" runat="server"><alternatingrowstyle BackColor="White"><columns><asp:commandfield ButtonType="Button" SelectText="Selecionar" ShowSelectButton="True"></asp:commandfield> <footerstyle BackColor="#990000" Font-Bold="True" ForeColor="White"><headerstyle BackColor="#990000" Font-Bold="True" ForeColor="White"><pagerstyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center"><rowstyle BackColor="#FFFBD6" ForeColor="#333333"><selectedrowstyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy"><sortedascendingcellstyle BackColor="#FDF5AC"><sortedascendingheaderstyle BackColor="#4D0000"><sorteddescendingcellstyle BackColor="#FCF6C0"><sorteddescendingheaderstyle BackColor="#820000"></sorteddescendingheaderstyle></sorteddescendingcellstyle></sortedascendingheaderstyle></sortedascendingcellstyle></selectedrowstyle></rowstyle></pagerstyle></headerstyle></footerstyle></columns></alternatingrowstyle></asp:gridview> <asp:label Visible="False" id="modoEnd" runat="server"></asp:label><asp:label Visible="False" id="lblCodEnd" runat="server"></asp:label><asp:validationsummary ForeColor="Red" HeaderText="Campos com asterisco devem ser preenchidos" ShowMessageBox="True" ShowSummary="False" ValidationGroup="A" id="ValidationSummary1" runat="server"></asp:validationsummary> <asp:updatepanel id="UpdatePanel5" runat="server"><contenttemplate> <asp:button Height="30px" Text="Inserir" ToolTip="Clique para inserir novo registro" Width="70px" id="btnInserirPJ" runat="server" style="font-style:italic;"><asp:button Height="30px" Text="Alterar" ToolTip="Clique para alterar ou complementar registro existente." Width="70px" id="btnAlterarPJ" runat="server" style="font-style:italic;"><asp:button Height="30px" Text="Excluir" ToolTip="Clique para excluir um registro." Width="70px" id="btnExcluirPJ" runat="server" style="font-style:italic;"></asp:button></asp:button></asp:button> <asp:button Height="30px" Text="Gravar" ToolTip="Clique para gravar as inserções, alterações ou exclusões." ValidationGroup="B" Width="70px" id="btnGravarPJ" runat="server" style="font-style:italic;"><asp:button Height="30px" Text="Cancelar" ToolTip="Clique para cancelar sua operação." Width="70px" id="btnCancelarPJ" runat="server" style="font-style:italic;"></asp:button></asp:button> <asp:textbox BackColor="#F4F4F4" ToolTip="Digite as letras iniciais para pesquisa." Width="280px" id="txtPesquisaPJ" runat="server" style="margin-right:0px;"></asp:textbox><asp:button Height="30px" Text="Pesquisar" ToolTip="Clique para pesquisar seus registros." Width="75px" id="btnPesquisarPJ" runat="server" style="font-style:italic;"></asp:button> Endereço da Empresa (tipo,logradouro,numero e município):<asp:requiredfieldvalidator ControlToValidate="ddlPJEnd" ErrorMessage="Endereço" ForeColor="#FF3300" ValidationGroup="B" id="RequiredFieldValidator37" runat="server">* </asp:requiredfieldvalidator> <asp:dropdownlist AppendDataBoundItems="True" AutoPostBack="True" Height="22px" Width="915px" id="ddlPJEnd" runat="server"></asp:dropdownlist> -
Se realmente problema de ViewState muito grande, você pode seguir o seguinte exemplo para desabilita-la sem ter problemas com os eventos.
ASPX:
<asp:DropDownList ID="ddlTeste" runat="server" AutoPostBack="True" EnableViewState="False"> </asp:DropDownList>
VB:
Protected Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init PopuladDrop() If IsPostBack Then ddlTeste.SelectedValue = Request.Params(ddlTeste.ClientID.Replace("_", "$")) End If End Sub Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load End Sub Private Sub PopuladDrop() ddlTeste.Items.Add(New ListItem("Teste 1")) ddlTeste.Items.Add(New ListItem("Teste 2")) ddlTeste.Items.Add(New ListItem("Teste 3")) ddlTeste.Items.Add(New ListItem("Teste 4")) ddlTeste.Items.Add(New ListItem("Teste 5")) End Sub Protected Sub ddlTeste_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles ddlTeste.SelectedIndexChanged End Sub
http://samuelcazelli.blogspot.com/
-
-
Você teria que fazer isso nos controles justamente no controle que tiver mais informações. No caso o de municípios.
Você seta o EnableViewState igual a False e faz o mesmo que está sendo feito no evento Page_Init.
http://samuelcazelli.blogspot.com/
-
Samuel, o que teria que alterar no Page_Load?
''' <summary> ''' Load com o carregamento dos comandos de todas as Views ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> ''' <remarks></remarks> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then desabilita() cargaCategoriaCadastro() Session.Add("DS", DSet) DSet = Session.Item("DS") btnInserirEnd.Enabled = False btnPesquisarEnd.Enabled = False txtPesquisaEnd.Enabled = False cargatipo() cargaSituacao() cargaUF() cargaMunicipio() btnInserirPJ.Enabled = False btnPesquisarPJ.Enabled = False txtPesquisaPJ.Enabled = False btnInserirUA.Enabled = False btnPesquisarUA.Enabled = False txtPesquisaUA.Enabled = False btnInserirUS.Enabled = False btnPesquisarUS.Enabled = False txtPesquisaUS.Enabled = False cargaCategPJ() cargaCodCNAE() cargaDenominaCNAE() cargaRazaoSocialUA() cargaRazaoSocialUS() cargaUAUS() btnInserirPF.Enabled = False btnPesquisarPF.Enabled = False txtPesquisaPF.Enabled = False btnInserirUsu.Enabled = False btnPesquisarUsu.Enabled = False txtPesquisaUsu.Enabled = False btnInserirUsu.Enabled = False btnPesquisarUsu.Enabled = False txtPesquisaUsu.Enabled = False cargaSexo() cargaEstadoCivil() cargaNumFil() cargaTipoSangue() cargaEscola() cargaVinculoEmprTrab() cargaRazaoSocialTrab() cargaRazaoSocialUsu() cargaUSTrab() cargaOcupaTrab() cargaOcupaUsu() cargaTempoOcupaTrab() cargaTempoOcupaUsu() cargaSitOcupTrab() cargaHistEmpreTrab() cargaHistEmpreUsu() cargaCurricTrab() cargaCurricUsu() cargaCondAtualUsu() cargaCondAtualTrab() End If End Sub
-
-
Observando melhor...até os botões inserir, alterar, excluir estão patinando. Ao clicar no botão pesquisar que carrega um grid (1.24MB 1.1min), ao selecionar uma linha do grid para carregar os campos(1.24 MB 1.0min), ao clicar no botão alterar (1,24MB 1.1min) ao gravar(1,24 MB 56.95seg). Qualquer acesso ao banco de dados Access o processo esta engatinhando.
Qual o caminho?
- Editado Wilson Boris quarta-feira, 13 de junho de 2012 23:02
-
O click do botão gravar em qualquer modo 1 minuto. O código do click do botão com o modo inserir. O que fazer?
Protected Sub btnGravar_Click(sender As Object, e As EventArgs) Handles btnGravarEnd.Click If modoEnd.Text = "A" Then If Me.IsValid() Then alterar() desabilita() modoEnd.Text = "" End If End If If modoEnd.Text = "I" Then If Me.IsValid() Then inserir() desabilita() End If End If If modoEnd.Text = "E" Then excluir() desabilita() End If modoEnd.Text = "X" End Sub Private Sub inserir() Dim conecte As New OleDbConnection conecte.ConnectionString = My.Settings.SIADSConecte Try conecte.Open() Catch ex As System.Data.OleDb.OleDbException If mtvCadastro.ActiveViewIndex = 0 Then Label1.Text = "Erro de conexao com o Banco de Dados: " & ex.Message.ToString ElseIf mtvCadastro.ActiveViewIndex = 1 Then If TabContainerPJ.ActiveTabIndex = 0 Then Label3.Text = "Erro de conexao com o Banco de Dados: " & ex.Message.ToString ElseIf TabContainerPJ.ActiveTabIndex = 1 Then Label5.Text = "Erro de conexao com o Banco de Dados: " & ex.Message.ToString ElseIf TabContainerPJ.ActiveTabIndex = 2 Then Label7.Text = "Erro de conexao com o Banco de Dados: " & ex.Message.ToString End If ElseIf mtvCadastro.ActiveViewIndex = 4 Then If TabContainerPF.ActiveTabIndex = 0 Then Label9.Text = "Erro de conexao com o Banco de Dados: " & ex.Message.ToString ElseIf TabContainerPF.ActiveTabIndex = 1 Then Label11.Text = "Erro de conexao com o Banco de Dados: " & ex.Message.ToString End If End If Return End Try Dim selcom As New System.Data.OleDb.OleDbCommand selcom.Connection = conecte If mtvCadastro.ActiveViewIndex = 0 Then selcom.CommandText = "INSERT INTO tbCadEndereco ( categoriaCadastro,tipo,logradouro,numero,situacao,bairro,telRes,telCom,telCel,estado,municipio,email,homepage,nomecontato,pontoReferencia,observacoes)" & _ " VALUES('" & rblCategoriaCadastro.Text & "','" & rblTipo.Text & "','" & txtLogra.Text & "','" & txtNum.Text & "','" & rblSituacao.Text & "','" & txtBairroLocal.Text & "','" & txtTelRes.Text & "','" & txtTelCom.Text & "','" & txtTelCel.Text & "','" & ddlUF.Text & "','" & ddlMun.Text & "','" & txtEmail.Text & "','" & txtHome.Text & "','" & txtContato.Text & "','" & txtPontoRef.Text & "','" & txtObservaEnd.Text & "')" Dim teste As Boolean Try teste = selcom.ExecuteNonQuery Catch ex As System.Data.OleDb.OleDbException Label16.Text = "Erro: " & ex.Message.ToString Return End Try conecte.Close() Label2.Text = "Dados gravados com sucesso" ElseIf mtvCadastro.ActiveViewIndex = 1 Then If TabContainerPJ.ActiveTabIndex = 0 Then selcom.CommandText = "INSERT INTO tbCadPessoaJuridica (categoriaCadastro,categoriaPJ,dataCadastro,razaoSocial,nomeFant,socioProp,cpf,dataFundacao,cnpj,ie,dtInCont,dtTerCont,codCnae,codEndPJ,observacao)" & _ " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" selcom.Parameters.Clear() selcom.Parameters.Add("@categoriaCadastro", OleDbType.VarChar, 100).Value = rblCategoriaCadastro.Text selcom.Parameters.Add("@categoriaPJ", OleDbType.VarChar, 100).Value = rblCategoriaPJ.Text selcom.Parameters.Add("@dataCadastro", OleDbType.VarChar, 100).Value = txtDataCadasPJ.Text selcom.Parameters.Add("@razaoSocial", OleDbType.VarChar, 100).Value = txtRazao.Text selcom.Parameters.Add("@nomeFant", OleDbType.VarChar, 100).Value = txtFantasia.Text selcom.Parameters.Add("@socioProp", OleDbType.VarChar, 100).Value = txtSocio.Text selcom.Parameters.Add("@cpf", OleDbType.VarChar, 100).Value = txtCPFsocio.Text selcom.Parameters.Add("@dataFundacao", OleDbType.VarChar, 100).Value = txtDataFunda.Text selcom.Parameters.Add("@cnpj", OleDbType.VarChar, 100).Value = txtCNPJ.Text selcom.Parameters.Add("@ie", OleDbType.VarChar, 100).Value = txtIE.Text selcom.Parameters.Add("@dtInCont", OleDbType.VarChar, 100).Value = txtDataIniContrato.Text selcom.Parameters.Add("@dtTerCont", OleDbType.VarChar, 100).Value = txtDataFinalContrato.Text selcom.Parameters.Add("@codCnae", OleDbType.VarChar, 100).Value = ddlCNAE.Text selcom.Parameters.Add("@codEndPJ", OleDbType.VarChar, 100).Value = lblCodEndPJ.Text selcom.Parameters.Add("@observacao", OleDbType.VarChar, 100).Value = txtObservaPJ.Text Dim teste As Boolean Try teste = selcom.ExecuteNonQuery Catch ex As System.Data.OleDb.OleDbException Label17.Text = "Erro: " & ex.Message.ToString Return End Try conecte.Close() Label4.Text = "Dados gravados com sucesso" ElseIf TabContainerPJ.ActiveTabIndex = 1 Then selcom.CommandText = "INSERT INTO tbCadUnidadesAdministrativas (categoriaCadastro,nomeEmpresa,descricao,codEndUA,observacao)" & _ " VALUES(?,?,?,?,?)" selcom.Parameters.Clear() selcom.Parameters.Add("@categoriaCadastro", OleDbType.VarChar, 100).Value = rblCategoriaCadastro.Text selcom.Parameters.Add("@nomeEmpresa", OleDbType.VarChar, 100).Value = ddlNomeEmpresaUA.Text selcom.Parameters.Add("@descricao", OleDbType.VarChar, 100).Value = txtNomeUA.Text selcom.Parameters.Add("@codEndUA", OleDbType.VarChar, 100).Value = lblCodEndUA.Text selcom.Parameters.Add("@observacao", OleDbType.VarChar, 100).Value = txtObservaUA.Text Dim teste As Boolean Try teste = selcom.ExecuteNonQuery Catch ex As System.Data.OleDb.OleDbException Label18.Text = "Erro: " & ex.Message.ToString Return End Try conecte.Close() Label6.Text = "Dados gravados com sucesso" ElseIf TabContainerPJ.ActiveTabIndex = 2 Then selcom.CommandText = "INSERT INTO tbCadUnidadesdeServicos (categoriaCadastro,nomeEmpresa,unidade_administrativa,descricao,codEndUS,observacao)" & _ " VALUES(?,?,?,?,?,?)" selcom.Parameters.Clear() selcom.Parameters.Add("@categoriaCadastro", OleDbType.VarChar, 100).Value = rblCategoriaCadastro.Text selcom.Parameters.Add("@nomeEmpresa", OleDbType.VarChar, 100).Value = ddlNomeEmpresaUS.Text selcom.Parameters.Add("@unidade_administrativa", OleDbType.VarChar, 100).Value = ddlUnidAdmUS.Text selcom.Parameters.Add("@descricao", OleDbType.VarChar, 100).Value = txtNomeUS.Text selcom.Parameters.Add("@codEndUS", OleDbType.VarChar, 100).Value = lblCodEndUS.Text selcom.Parameters.Add("@observacao", OleDbType.VarChar, 100).Value = txtObservaUS.Text Dim teste As Boolean Try teste = selcom.ExecuteNonQuery Catch ex As System.Data.OleDb.OleDbException Label19.Text = "Erro: " & ex.Message.ToString Return End Try conecte.Close() Label8.Text = "Dados gravados com sucesso" End If ElseIf mtvCadastro.ActiveViewIndex = 4 Then If TabContainerPF.ActiveTabIndex = 0 Then selcom.CommandText = "INSERT INTO tbCadPessoaFisica (CategoriaCadastro,DataCadastro,Nome,sobrenome,Sexo,nomeMae,nomePai,estadoCivil,numeroFilhos,dataNascimento,CPF,tipoSangue,escolaridade,especializacao,codEndPF,observacao)" & _ " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" selcom.Parameters.Clear() selcom.Parameters.Add("@CategoriaCadastro", OleDbType.VarChar, 100).Value = rblCategoriaCadastro.Text selcom.Parameters.Add("@dataCadastro", OleDbType.VarChar, 100).Value = txtDataCadastroPF.Text selcom.Parameters.Add("@Nome", OleDbType.VarChar, 100).Value = txtNome.Text selcom.Parameters.Add("@sobrenome", OleDbType.VarChar, 100).Value = txtSobrenome.Text selcom.Parameters.Add("@Sexo", OleDbType.VarChar, 100).Value = rblSexo.Text selcom.Parameters.Add("@nomeMae", OleDbType.VarChar, 100).Value = txtNomeMae.Text selcom.Parameters.Add("@nomePai", OleDbType.VarChar, 100).Value = txtNomePai.Text selcom.Parameters.Add("@estadoCivil", OleDbType.VarChar, 100).Value = rblEstadoCivil.Text selcom.Parameters.Add("@numeroFilhos", OleDbType.VarChar, 100).Value = rblNumeroFilhos.Text selcom.Parameters.Add("@dataNascimento", OleDbType.VarChar, 100).Value = txtDataNascimento.Text selcom.Parameters.Add("@CPF", OleDbType.VarChar, 100).Value = txtCPF.Text selcom.Parameters.Add("@tipoSangue", OleDbType.VarChar, 100).Value = rblTipoSangue.Text selcom.Parameters.Add("@escolaridade", OleDbType.VarChar, 100).Value = ddlEscolaridade.Text selcom.Parameters.Add("@especializacao", OleDbType.VarChar, 150).Value = txtEspecialidade.Text selcom.Parameters.Add("@codEndPF", OleDbType.VarChar, 100).Value = lblCodEndPF.Text selcom.Parameters.Add("@observacao", OleDbType.VarChar, 500).Value = txtObservaPF.Text Dim teste As Boolean Try teste = selcom.ExecuteNonQuery Catch ex As System.Data.OleDb.OleDbException Label20.Text = "Erro: " & ex.Message.ToString Return End Try conecte.Close() Label10.Text = "Dados gravados com sucesso" ElseIf TabContainerPF.ActiveTabIndex = 1 Then selcom.CommandText = "INSERT INTO tbCadPessoaFisicaTrab (categoriaCadastro,nome,rg,orgaoExpedidor,dataEmissao,conselhodeClasse,numConsClasse,carteiraTrabalho,razaosocial,dataAdmissao,vinculoEmpregaticio,descricaoUS,descricaoOcupacao,tempoOcupacaoAtual,situacaoOcupacao,historicoEmpregaticio,curriculo,condicaoAtual,codPFTrab,observacao)" & _ " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" selcom.Parameters.Clear() selcom.Parameters.Add("@categoriaCadastro", OleDbType.VarChar, 100).Value = rblCategoriaCadastro.Text selcom.Parameters.Add("@nome", OleDbType.VarChar, 100).Value = ddlNomeTrab.SelectedItem.Text selcom.Parameters.Add("@rg", OleDbType.VarChar, 100).Value = txtRGTrab.Text selcom.Parameters.Add("@orgaoExpedidor", OleDbType.VarChar, 100).Value = txtOrgaoExpTrab.Text selcom.Parameters.Add("@dataEmissao", OleDbType.VarChar, 100).Value = txtDataEmisTrab.Text selcom.Parameters.Add("@conselhodeClasse", OleDbType.VarChar, 100).Value = txtConselhoClasseTrab.Text selcom.Parameters.Add("@numConsClasse", OleDbType.VarChar, 100).Value = txtNumConsClasseTrab.Text selcom.Parameters.Add("@carteiraTrabalho", OleDbType.VarChar, 100).Value = txtCartTrab.Text selcom.Parameters.Add("@razaoSocial", OleDbType.VarChar, 100).Value = ddlRazaoSocialTrab.Text selcom.Parameters.Add("@dataAdmissao", OleDbType.VarChar, 100).Value = txtDataAdmissaoTrab.Text selcom.Parameters.Add("@vinculoEmpregaticio", OleDbType.VarChar, 100).Value = rblVinculoEmpregaTrab.Text selcom.Parameters.Add("@descricaoUS", OleDbType.VarChar, 100).Value = ddlUnidadeServTrab.Text selcom.Parameters.Add("@descricaoOcupacao", OleDbType.VarChar, 100).Value = ddlOcupacaoTrab.Text selcom.Parameters.Add("@tempoOcupacaoAtual", OleDbType.VarChar, 100).Value = ddlTempoOcupacaoTrab.Text selcom.Parameters.Add("@situacaoOcupacao", OleDbType.VarChar, 200).Value = rblSituacaoOcupaTrab.Text selcom.Parameters.Add("@historicoEmpregaticio", OleDbType.VarChar, 100).Value = ddlHistoricoEmpregTrab.Text selcom.Parameters.Add("@curriculo", OleDbType.VarChar, 100).Value = rblCurriculoTrab.Text selcom.Parameters.Add("@condicaoAtual", OleDbType.VarChar, 100).Value = rblCondicaoAtualTrab.Text selcom.Parameters.Add("@codPFTrab", OleDbType.VarChar, 100).Value = lblCodPFTrab.Text selcom.Parameters.Add("@observacao", OleDbType.VarChar, 500).Value = txtObservaTrab.Text Dim teste As Boolean Try teste = selcom.ExecuteNonQuery Catch ex As System.Data.OleDb.OleDbException Label21.Text = "Erro: " & ex.Message.ToString Return End Try conecte.Close() Label12.Text = "Dados gravados com sucesso" ElseIf TabContainerPF.ActiveTabIndex = 2 Then selcom.CommandText = "INSERT INTO tbCadPessoaFisicaUsu (categoriaCadastro,nome,rg,orgaoExpedidor,dataEmissao,conselhodeClasse,numConsClasse,razaoSocial,descricaoOcupacao,tempoOcupacaoAtual,historicoEmpregaticio,curriculo,condicaoAtual,codPFUsu,observacao)" & _ " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" selcom.Parameters.Clear() selcom.Parameters.Add("@categoriaCadastro", OleDbType.VarChar, 100).Value = rblCategoriaCadastro.Text selcom.Parameters.Add("@nome", OleDbType.VarChar, 100).Value = ddlNomeUsu.SelectedItem.Text selcom.Parameters.Add("@rg", OleDbType.VarChar, 100).Value = txtRGUsu.Text selcom.Parameters.Add("@orgaoExpedidor", OleDbType.VarChar, 100).Value = txtOrgaoExpUsu.Text selcom.Parameters.Add("@dataEmissao", OleDbType.VarChar, 100).Value = txtDataEmisUsu.Text selcom.Parameters.Add("@conselhodeClasse", OleDbType.VarChar, 100).Value = txtConselhoClasseUsu.Text selcom.Parameters.Add("@numConsClasse", OleDbType.VarChar, 100).Value = txtNumConsClasseUsu.Text selcom.Parameters.Add("@razaoSocial", OleDbType.VarChar, 100).Value = ddlRazaoSocialUsu.Text selcom.Parameters.Add("@descricaoOcupacao", OleDbType.VarChar, 100).Value = ddlOcupacaoUsu.Text selcom.Parameters.Add("@tempoOcupacaoAtual", OleDbType.VarChar, 100).Value = ddlTempoOcupacaoUsu.Text selcom.Parameters.Add("@historicoEmpregaticio", OleDbType.VarChar, 100).Value = ddlHistoricoEmpregUsu.Text selcom.Parameters.Add("@curriculo", OleDbType.VarChar, 100).Value = rblCurriculoUsu.Text selcom.Parameters.Add("@condicaoAtual", OleDbType.VarChar, 100).Value = rblCondicaoAtualUsu.Text selcom.Parameters.Add("@codPFUsu", OleDbType.VarChar, 100).Value = lblCodPFUsu.Text selcom.Parameters.Add("@observacao", OleDbType.VarChar, 500).Value = txtObservaUsu.Text Dim teste As Boolean Try teste = selcom.ExecuteNonQuery Catch ex As System.Data.OleDb.OleDbException Label22.Text = "Erro: " & ex.Message.ToString Return End Try conecte.Close() Label14.Text = "Dados gravados com sucesso" End If End If rblCategoriaCadastro.Focus() cargaGRID() End Sub
-
O que falaram é o que mais ocorre, problema com o tamanho de view state. Local fica uma maravilha, já que a transferência dos dados é no próprio micro, agora quando publica, para trafegar tantos dados entre computadores pela internet, a página fica uma carroça.
Uma vez fui fazer um serviço de tunning em um site que demorava dois minutos o carregamento do grid paginado, e a cada clique para mudar de página, eram mais dois minutos perdidos. Mudei a estratégia de leitura de dados e principalmente a forma de armazenamento, tirei tudo que era armazenado no ViewState. O carregamento e a mudança de páginas caíram para menos de 2 segundos.
Então vasculhe na sua página o que está sendo armazenado no ViewState. Acredito que isto é a razão da lentidão. Tente armazenar os dados na Session, mas lembre-se sempre de dar manutenção nela, apagando o que não é mais de interesse, para não sobrecarregar a memória do servidor e toda a sua aplicação ficar lenta.
Luís Fernando Vendrame
-
Luis, não sei nem como te agradecer, pois isso esta me preocupando muito. Eu usei as ferramentas do desenvolvedor no Chrome para verificar size e time, mas sou iniciante nisso, voce saberia indicar algo para aprofundar esse conhecimento do que está sendo armazenado no ViewState? Valeu amigão.
-
Para ver individualmente o quando de viewstate cada controle está gastando, você pode ir na tag Page da sua página e colocar Trace="true".
Desta forma:http://msdn.microsoft.com/en-us/library/94c55d08.aspx
Dai onde estiver escrito "Árvore de Controle" existe uma coluna "Tamanho em Bytes de ViewState (excluindo filhos)"
- Editado Samuel_Cazelli quinta-feira, 14 de junho de 2012 21:11