Dúvida com SqlDataReader
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
Curtidas 0
Respostas
Pjava
16/08/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 );
....
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 );
GOSTEI 0
Joel Rodrigues
16/08/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.
GOSTEI 0
Pjava
16/08/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);
}
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);
}
GOSTEI 0
Joel Rodrigues
16/08/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
- Utilizando o método acima para exibir os países em um GridView.
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.
- Método que retorna uma lista objetos da classe Pais
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.
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.
GOSTEI 0
Pjava
16/08/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()
}
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()
}
GOSTEI 0
Joel Rodrigues
16/08/2012
Amigão, mais uma vez vou te pedir para especificar QUAL É o erro.
GOSTEI 0
Pjava
16/08/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.
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.
GOSTEI 0
Joel Rodrigues
16/08/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.
Mas beleza, pelo menos funcionou.
Estou encerrando o tópico.
GOSTEI 0