Array
(
)

Erro: Object reference not set to an instance of an object

Gfilhosp
   - 30 abr 2007

Pessoal, estou tendo problemas para executar um método de uma classe, apresenta o erro acima, já instanciei todos os objetos usados e mesmo assim, continua apresentando o erro na chamado do método ShowFuncionario da classe CaixaUsuario (mostrado abaixo), agradeço a todos q puderem dar um help.

Grato,
Gabriel

// classe organograma
CaixaUsuario Gestor = new CaixaUsuario();

if( dsGestor.Tables.Count > 0 && dsGestor.Tables[0].Rows.Count == 1)
{
Gestor.Funcionario = dsGestor.Tables[0].Rows[0];
Gestor.Editar = Convert.ToBoolean(cmdEditar.Attributes[´Editar´]);
Gestor.Total = this.Subordinados.Rows.Count;
Gestor.Gestor = true;
Gestor.ShowFuncionario(); // o exception é disparado nessa linha.
}

// classe CaixaUsuario

namespace YKP.Abbott.SPC.WebUI.Library.UControls
{
using System;
using System.Configuration;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

/// <summary>
/// Summary description for CaixaUsuario.
/// </summary>
public class CaixaUsuario : System.Web.UI.UserControl
{
public System.Web.UI.WebControls.HyperLink lnkNomeGestor;
#region Web Form Designer generated code

protected System.Web.UI.WebControls.Label lblCargoGestor;
protected System.Web.UI.WebControls.Label lblGradeGestor;
protected System.Web.UI.WebControls.Label lblIdade;
protected System.Web.UI.WebControls.PlaceHolder pchEsquerda;
protected System.Web.UI.WebControls.PlaceHolder pchCentro;
protected System.Web.UI.WebControls.PlaceHolder pchDireita;
protected System.Web.UI.WebControls.PlaceHolder pchUnico;
protected System.Web.UI.WebControls.PlaceHolder pchPrimeira;
protected System.Web.UI.WebControls.PlaceHolder pchLateralCentro;
protected System.Web.UI.WebControls.PlaceHolder pchLateralInferior;
protected System.Web.UI.WebControls.PlaceHolder pchLateral;
protected System.Web.UI.WebControls.PlaceHolder pchUltimaLinha;
protected Repeater rpSucessores;

override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

region Propriedades
protected string IdGestor
{
get{ return Convert.ToString(ViewState[´IdGestor´]); }
set{ ViewState[´IdGestor´] = value; }
}

protected string idVisao
{
get{ return Convert.ToString(ViewState[´idVisao´]); }
set{ ViewState[´idVisao´] = value; }
}

protected string nomeVisaoSUP
{
get{ return Convert.ToString(ViewState[´nomeVisaoSUP´]); }
set{ ViewState[´nomeVisaoSUP´] = value; }
}

protected string idCargo
{
get{ return Convert.ToString(ViewState[´idCargo´]); }
set{ ViewState[´idCargo´] = value; }
}

protected string nomeVisao
{
get{ return Convert.ToString(ViewState[´nomeVisao´]); }
set{ ViewState[´nomeVisao´] = value; }
}

public int numQuebraLinha = 0;
public int numSucessoresPorLinha = 0;
public int numTotalSucessores = 0;
public int numTotalSucessoresGestor = 0;
public int contador = 0;

private DataRow drFunc;
/// <summary>
/// DataRow com o funcionário
/// </summary>
public DataRow Funcionario
{
get{ return this.drFunc; }
set{ this.drFunc = value; }
}

private Unit _width;
/// <summary>
/// Largura da caixa
/// </summary>
public Unit Width
{
get{ return this._width; }
set{ this._width = value; }
}

private bool _editar = false;
/// <summary>
/// Indica se usuário pode editar os sucessores
/// </summary>
public bool Editar
{
get{ return this._editar; }
set{ this._editar = value; }
}

private bool _gestor = false;
/// <summary>
/// Indica se a caixa é de um gestor
/// </summary>
public bool Gestor
{
get{ return this._gestor; }
set{ this._gestor = value; }
}

private int _index = 0;
/// <summary>
/// Índice atual da caixa
/// </summary>
public int Index
{
get{ return this._index; }
set{ this._index = value; }
}

private int _columns = 0;
/// <summary>
/// Número máximo de colunas por linha
/// </summary>
public int Columns
{
get{ return this._columns; }
set{ this._columns = value; }
}

private int _total = 0;
/// <summary>
/// Total de caixas sendo exibidas
/// </summary>
public int Total
{
get{ return this._total; }
set{ this._total = value; }
}
#endregion

region Eventos
private void Page_Load(object sender, System.EventArgs e)
{

}

private void rpSucessores_ItemDataBound(object sender,
RepeaterItemEventArgs e)
{
// Adicionando confirmação de exclusão
((LinkButton)e.Item.FindControl(´cmdExcluir´)).Attributes.Add(´onclick´,
´return window.confirm(´Você tem certeza que deseja excluir este
sucessor?´);´);
}

private void rpSucessores_ItemCommand(object source,
RepeaterCommandEventArgs e)
{
// Verificando commando
switch (e.CommandName)
{
// Excluir sucessor
case ´cmdExcluir´:
//this.ExcluirSucessor(Convert.ToInt32(IdGestor),
Convert.ToInt32(e.CommandArgument), (e.Item.ItemIndex + 1));
//((YKP.Abbott.SPC.WebUI.Planejamento.Orga)Page).PopularGestor();
this.ExcluirSucessor(nomeVisaoSUP, idVisao, idCargo,
Convert.ToInt32(e.CommandArgument), (e.Item.ItemIndex + 1));
((YKP.Abbott.SPC.WebUI.Planejamento.Orga)Page).SelecionarOrganograma();

break;
}
}
#endregion

region ShowFuncionario
/// <summary>
/// Exibe as informações do funcionário
/// </summary>
public void ShowFuncionario()
{
if(drFunc != null)
{
lnkNomeGestor.Text = drFunc[´ATRNOMEPESSOA´].ToString();
lblIdade.Text = (drFunc[´IDADE´].ToString() != ´´ ? ´, ´ : ´´) +
drFunc[´IDADE´].ToString();
lblCargoGestor.Text = drFunc[´ATRNOMEVISAO´].ToString();
lblGradeGestor.Text = drFunc[´ATRNOMECLASSE´].ToString();
this.IdGestor = drFunc[´ATRIDFUNCIONARIO´].ToString();
this.nomeVisaoSUP = drFunc[´ATRNOMEVISAOSUP´].ToString();
this.idCargo = drFunc[´ATRIDCARGO´].ToString();
this.idVisao = drFunc[´ATRIDVISAO´].ToString();
this.nomeVisao = drFunc[´ATRNOMEVISAO´].ToString();

int RE = Convert.ToInt32( drFunc[´ATRIDFUNCIONARIO´] );
this.Visible = true;
this.Parent.Visible = true;

string sConnectionString =
ConfigurationSettings.AppSettings.Get(´Cnx.ConnectionString´); 
OleDbConnection objConn = new OleDbConnection(sConnectionString);

objConn.Open();

OleDbCommand objCmdSelect = new OleDbCommand(´SELECT S.*,
trunc(MONTHS_BETWEEN(SYSDATE, S.ATRDATANASCIMENTO) / 12) AS IDADE FROM
SPC.TB_SUCESSOR S WHERE S.ATRIDVISAO = ? AND S.ATRNOMEVISAOSUP = ? AND
S.ATRIDCARGO = ? ORDER BY S.ATRIDORDEM ASC´, objConn);
objCmdSelect.Parameters.Add(new OleDbParameter(´´, idVisao) );
objCmdSelect.Parameters.Add(new OleDbParameter(´´, nomeVisaoSUP) );
objCmdSelect.Parameters.Add(new OleDbParameter(´´, idCargo) );

OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;

DataSet dsSucessores = new DataSet();

objAdapter1.Fill(dsSucessores, ´PLAN1´);

objConn.Close();

DataTable dtSucessores = dsSucessores.Tables[0];
DataRow drSucessor;

for(int i = 1; i <= Configuration.Organograma.QuantidadeSucessores; i++)
{
if(dtSucessores.Rows.Count >= i)
{
int valor = Convert.ToInt32(dtSucessores.Rows[i-1][´ATRIDORDEM´]);
if(valor > i)
{
// Insere linha antes
for(i = i; i < valor; i++)
{
drSucessor = dtSucessores.NewRow();
drSucessor[´ATRIDSUCESSOR´] = -1;
dtSucessores.Rows.InsertAt(drSucessor, i-1);
}
}

}
else
{
// Insere linha depois
drSucessor = dtSucessores.NewRow();
drSucessor[´ATRIDSUCESSOR´] = -1;
dtSucessores.Rows.Add(drSucessor);
}
}

rpSucessores.DataSource = dtSucessores;
rpSucessores.DataBind();
base.DataBind();
}
}
#endregion
}}

Curynga
   - 20 jun 2007

Qual linha ta dando o erro?