Dúvida com SqlDataReader

16/08/2012

0

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

Pjava

Responder

Posts

16/08/2012

Pjava

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 );
Responder

17/08/2012

Joel Rodrigues

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.
Responder

17/08/2012

Pjava

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);
}
Responder

17/08/2012

Joel Rodrigues

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
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.
Responder

17/08/2012

Pjava

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()
}
Responder

17/08/2012

Joel Rodrigues

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

17/08/2012

Pjava

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.
Responder

17/08/2012

Joel Rodrigues

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.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar