Carregar datatable por um array
21/05/2012
0
Pjava
Posts
21/05/2012
Joel Rodrigues
21/05/2012
Pjava
O que passa é que minha lista está vindo vazia. Na construção do gráfico ela é preenchida, mas depois quando vou carregar a tabela com os mesmos valores da construção do gráfico, a lista vem vazia. Abaixo os meus códigos:
protected void Page_Load(object sender, EventArgs e)
{
lblTitulo.Text = TRANSAÇÕES NEGADAS - CRÉDITO;
int codUsuario = 123;
TransacoesNegadasPorMotivoBL bl = new TransacoesNegadasPorMotivoBL();
bl.Mes = Request.QueryString[Mes].ToString();
bl.Execute(codUsuario);
.................
//Código que conastroem os gráficos
....................
//E aqui eu faço a chamada a lista. Nesse momento ela vem cheia, com dados
chartSeries1.SetValues(bl.listaTransacoes.ToArray());
chartSeries1.PlotArea.XAxis.AddRange(1, bl.listaDescricao.Count, 1);//Aqui minha lista listaDescricao possui valores(Count > 0)
for (int i = 0; i < bl.listaDescricao.Count; i++)
{
chartSeries1.PlotArea.XAxis[i].TextBlock.Text = bl.listaDescricao[i];
}
//Abaixo eu populo a tabela. A lista bl.listaDescricao vem vazia. Nesse ponto ela é chamada pela segunda vez
private void RetornoDS()
{
bl.Execute(codUsuario);//Método que carrega do BD - Nesse momento eu o chamo pelka segunda vez
DataTable dt = dsVerDados.Tables.Add(dtVerDados1);
DataColumn col1 = dt.Columns.Add(Cód., Type.GetType(System.Int32));
col1.Caption = Cód;
DataColumn col2 = dt.Columns.Add(Descrição, Type.GetType(System.String));
col2.Caption = Descrição;
col2.AllowDBNull = true;
DataColumn col3 = dt.Columns.Add(Qtde, Type.GetType(System.Int32));
col3.Caption = Qtde;
col3.AllowDBNull = true;
DataColumn col4 = dt.Columns.Add(%, Type.GetType(System.String));
col4.Caption = %;
col4.AllowDBNull = true;
for (int i = 0; i <= bl.listaDescricao.Count; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i;
dr[1] = bl.listaDescricao[i]; //Lorem Ipsum sit est dolor;
dr[2] = 1;// bl.listaTransacoes.ToArray();
Random rnd = new Random();
dr[3] = rnd.Next(0, 100);
dt.Rows.Add(dr);
}
DataRow drTotal = dt.NewRow();
drTotal[0] = DBNull.Value;
drTotal[1] = DBNull.Value;
drTotal[2] = DBNull.Value;
drTotal[3] = 100%;
dt.Rows.Add(drTotal);
dsVerDados.Tables.Clear();
dsVerDados.Tables.Add(dt);
DsRetorno = dsVerDados;
}
Aqui, minha classe de conexão ao banco. Suprimi o select para não ficar extenso essa thread. O select funciona. A lista é preenchida, mas vai vazia. Isso somente qdo é chamada pela segunda vez. Aqui ela é preenchida, mesmo pela segunda vez, mas não consegui ver onde ela é esvaziada.
OracleConnection oracleConexao = new OracleConnection();
oracleConexao.ConnectionString = ConfigurationManager.ConnectionStrings[ConexaoPortalEC].ConnectionString;
this.comando = new OracleCommand(comandoSQL.ToString(), oracleConexao);
try
{
oracleConexao.Open();
comando.ExecuteNonQuery(); OracleDataReader dr = comando.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
string descricao = dr[LEGENDA].ToString();
double soma_total = Convert.ToDouble(dr[QTD]);
listaTransacoes.Add(soma_total);
listaDescricao.Add(descricao);
}
}
}
catch (Exception excecao)
{
Erro = excecao.Message;
}
finally
{
oracleConexao.Close();
}
comando.Dispose();
21/05/2012
Pjava
21/05/2012
Pjava
bl.Mes = Request.QueryString[Mes].Tostring();]
Onde bl é a variável que vem da classe da query do banco. Na chamada da tabela, eu preciso carregar esse Mes e não estou sabendo como. Como instanciar uma classe partial class? Ou um Go Horse bem feito, também vale,rs.
Clique aqui para fazer login e interagir na Comunidade :)