Array
(
)

Dúvida com SqlDataReader

Pjava
   - 16 ago 2012

Existe aqui no projeto um método que me retorna um sqldatareader e uma lista de objetos. Preciso saber pegar esses caras e mstrar num GridView. Pessoal, tô perdidão nisso. Como eu faço isso? Preciso de uma luz, um start apenas.

Pjava
   - 16 ago 2012

Seria isso e retorna _tela. Agora, como eu pego do outro lado e jogo num gridview? Jogar no gridview, não é a questã, mas sim, como pegar esse retorno.
....
while (_SqlDataReader.Read())
{
Domain.Entity.tela _tela = new Domain.Entity.tela ();

_tela .Idtela = Convert.ToInt64(_SqlDataReader["Idtela "]);
_tela .Descricao = Convert.ToString(_SqlDataReader["Descricao"]);
_tela .IdProjeto = Convert.ToInt64(_SqlDataReader["IdProjeto"]);
_tela .DataInclusao = _SqlDataReader["Data1"].ToString().ToNullable<DateTime>();
_tela .DataAlteracao = _SqlDataReader["Data2"].ToString().ToNullable<DateTime>();

_Listtela .Add(_tela );

0
|
0

Joel Rodrigues
   - 17 ago 2012

Ué, você deve ter um método que retorna um objeto do tipo desejado, certo? Na página, você chama o método e associa o retorno ao DataSource do GridView.

0
|
0

Pjava
   - 17 ago 2012

Então Joel, minha dúvida está exatamente aí. Nessa implementação. Fiz isso, mas está errado com certeza.

private List<Domain.Entity.Skin> PesquisaSkin(int _idskin)
{
Domain.Finder.Skin skin = new Domain.Finder.Skin();

skin.IdSkin = _idskin;

return GrupoLTM.Sistema.Infrastructure.Repository.Skin.RetornarPorID(skin);
}

private void btnGeraTarefa_Click(object sender, EventArgs e)
{
List<Domain.Entity.Skin> skb = new List<Domain.Entity.Skin>();

skb = PesquisaSkin(1);
}

0
|
0

Joel Rodrigues
   - 17 ago 2012

Cara, eu não conheço suas classes, mas vou dar um exemplo que pode clarear as ideias:
- Método que retorna uma lista objetos da classe Pais
#Código

public List<Pais> ListarPaises()
{
List<Pais> paises = new List<Pais>();
paises.Add(new Pais(´´Brasil´´));
paises.Add(new Pais(´´EUA´´));
paises.Add(new Pais(´´Itália´´));
return paises;
}


- Utilizando o método acima para exibir os países em um GridView.
#Código
gridView1.DataSource = ListarPaises();
gridView1.DataBind();


Nesse exemplo, estou considerando que o GridView e o método pertencem à mesma página. Dependendo do contexto, poderia haver uma classe Pais com um método estático para listar todos.

Mas a ideia geral é essa.

0
|
0

Pjava
   - 17 ago 2012

Estou fazendo isso e dá erro no dataBind()

private List<Entity.Skin> PesquisaSkin()
{
List<Entity.Skin> listaSkin = new List<Entity.Skin>();
listaSkin = Infrastructure.Repository.Skin.RetornarTodos();
foreach (Entity.Skin lista in listaSkin)
{
//Ainda falta alguma coisa aqui, mas isso eu faço
}
return listaSkin;
}

private void btnGeraTarefa_Click(object sender, EventArgs e)
{
dgvPesquisa.DataSource = PesquisaSkin();
dgvPesquisa.DataBind(); ==>> Erro no DataBind()
}

0
|
0

Joel Rodrigues
   - 17 ago 2012

Amigão, mais uma vez vou te pedir para especificar QUAL É o erro.

0
|
0

Pjava
   - 17 ago 2012

Ele não aceitava o DataBind(). Simplesmente dizia:
System.Windows.Form.DataGridView does not contain a definition for 'DataBind()'...
Mas já resolvi a questão assim:

private List<Entity.Skin> PesquisaIdSkin(Int32 _idskin)
{
List<Entity.Skin> listaSkin = new List<Entity.Skin>();
Finder.Skin finder = new Finder.Skin();
finder.IdSkin = _idskin;

listaSkin = Infrastructure.Repository.Skin.RetornarPorID(finder);

return listaSkin;
}

E a chamada do método, assim:

dgvPesquisa.DataSource = PesquisaTodosSkin();

Obrigado e pode encerrar este post.

0
|
0

Joel Rodrigues
   - 17 ago 2012

Ah, cara, isso é em Windos Forms? O DataBind() é em ASP.NET, pensei que fosse esse o tipo de projeto.
Mas beleza, pelo menos funcionou.
Estou encerrando o tópico.

0
|
0