TRANSFERIR LIST T PARA UM DATATABLE
PESSOAL BOA TARDE , SEGUE O CÓDIGO ABAIXO EM QUE FIZ NO SISTEMA QUE ESTOU TENTANDO DESENVOLVER.. O PROBLEMA é O SEGUINTE .. EU PRECISO TRANSFORMAR A LIST EM DATATABLE PARA DEVOLVER PARA O SISTEMA E CARREGAR NO DATAGRID.!
SE POSSIVEL ALGUMA AJUDA SERIA MTO GRATO.! DESDE JÃ OBRIGADO
public DataTable carrega_novo_pedido(int id)
{
string vsql = [Ô]SELECT id,item,descricao,unidade,quant,valor FROM item_pedido where id_pedido = @idpedido[Ô];
SqlCommand sqlcmd = null;
if (this.conectar())
{
sqlcmd = new SqlCommand(vsql, objcon);
sqlcmd.Parameters.AddWithValue([Ô]idpedido[Ô], id);
using (SqlDataReader dr = sqlcmd.ExecuteReader())
{
if (dr.HasRows)
{
//id,item,descricao,unidade,quant,valor
List<PedidoItem> pedido = new List<PedidoItem>();
while (dr.Read())
{
PedidoItem item = new PedidoItem();
item.Id = dr.GetInt32(dr.GetOrdinal([Ô]id[Ô]));
item.Item = dr.GetInt32(dr.GetOrdinal([Ô]item[Ô]));
item.Descricao = dr.GetString(dr.GetOrdinal([Ô]descricao[Ô]));
item.Unidade = dr.GetString(dr.GetOrdinal([Ô]unidade[Ô]));
item.Quant = dr.GetInt32(dr.GetOrdinal([Ô]quant[Ô]));
item.Valor = dr.GetFloat(dr.GetOrdinal([Ô]valor[Ô]));
pedido.Add(item);
}
}
}
SE POSSIVEL ALGUMA AJUDA SERIA MTO GRATO.! DESDE JÃ OBRIGADO
public DataTable carrega_novo_pedido(int id)
{
string vsql = [Ô]SELECT id,item,descricao,unidade,quant,valor FROM item_pedido where id_pedido = @idpedido[Ô];
SqlCommand sqlcmd = null;
if (this.conectar())
{
sqlcmd = new SqlCommand(vsql, objcon);
sqlcmd.Parameters.AddWithValue([Ô]idpedido[Ô], id);
using (SqlDataReader dr = sqlcmd.ExecuteReader())
{
if (dr.HasRows)
{
//id,item,descricao,unidade,quant,valor
List<PedidoItem> pedido = new List<PedidoItem>();
while (dr.Read())
{
PedidoItem item = new PedidoItem();
item.Id = dr.GetInt32(dr.GetOrdinal([Ô]id[Ô]));
item.Item = dr.GetInt32(dr.GetOrdinal([Ô]item[Ô]));
item.Descricao = dr.GetString(dr.GetOrdinal([Ô]descricao[Ô]));
item.Unidade = dr.GetString(dr.GetOrdinal([Ô]unidade[Ô]));
item.Quant = dr.GetInt32(dr.GetOrdinal([Ô]quant[Ô]));
item.Valor = dr.GetFloat(dr.GetOrdinal([Ô]valor[Ô]));
pedido.Add(item);
}
}
}
Você pode simplesmente passar o List<T> para o DataGrid, não há necessidade de se transformar em um DataTable...
DataGrid1.DataSource = Pedido;
vlw
vlw
mais no caso.. esse código está dentro de uma classe eu preciso passar algum retorno para o form ..
qual seria o retorno :??
no caso teria que alterar la em cima colocar public void ? ? ?
e no return seria null ? ? ?
Obrigado desde já
e Kerp mandei um email para ti no gmail cara.. se possivel da uma olhadinha la dps
qual seria o retorno :??
no caso teria que alterar la em cima colocar public void ? ? ?
e no return seria null ? ? ?
Obrigado desde já
e Kerp mandei um email para ti no gmail cara.. se possivel da uma olhadinha la dps
public List<PedidoItem> carrega_novo_pedido(int id)
Ao terminar o loop para preencher a lista:
return pedido;
Ao terminar o loop para preencher a lista:
return pedido;
VEJAM AGORA ELE FICOU ASSIM, ENTRETANTO , QUANDO COMPILO ELE TA O ERRO POIS O RETURN DEVE ESTAR LA EM BAIXO ANTES DO FINAL DO MéTODO.... MAIS COMO O PEDIDO ESTRA DENTRO DO WHILE NAO CONSIGO CHAMALO LA EM BAIXO.!
ALGUMA SOLUÇÃO ? ?
public List<PedidoItem> carrega_novo_pedido(int id)
{
string vsql = [Ô]SELECT id,item,descricao,unidade,quant,valor FROM item_pedido where id_pedido = @idpedido[Ô];
SqlCommand sqlcmd = null;
if (this.conectar())
{
sqlcmd = new SqlCommand(vsql, objcon);
sqlcmd.Parameters.AddWithValue([Ô]idpedido[Ô], id);
using (SqlDataReader dr = sqlcmd.ExecuteReader())
{
if (dr.HasRows)
{
//id,item,descricao,unidade,quant,valor
List<PedidoItem> pedido = new List<PedidoItem>();
while (dr.Read())
{
PedidoItem item = new PedidoItem();
item.Id = dr.GetInt32(dr.GetOrdinal([Ô]id[Ô]));
item.Item = dr.GetInt32(dr.GetOrdinal([Ô]item[Ô]));
item.Descricao = dr.GetString(dr.GetOrdinal([Ô]descricao[Ô]));
item.Unidade = dr.GetString(dr.GetOrdinal([Ô]unidade[Ô]));
item.Quant = dr.GetInt32(dr.GetOrdinal([Ô]quant[Ô]));
item.Valor = dr.GetFloat(dr.GetOrdinal([Ô]valor[Ô]));
pedido.Add(item);
}
return pedido;
}
}
}
}
ALGUMA SOLUÇÃO ? ?
public List<PedidoItem> carrega_novo_pedido(int id)
{
string vsql = [Ô]SELECT id,item,descricao,unidade,quant,valor FROM item_pedido where id_pedido = @idpedido[Ô];
SqlCommand sqlcmd = null;
if (this.conectar())
{
sqlcmd = new SqlCommand(vsql, objcon);
sqlcmd.Parameters.AddWithValue([Ô]idpedido[Ô], id);
using (SqlDataReader dr = sqlcmd.ExecuteReader())
{
if (dr.HasRows)
{
//id,item,descricao,unidade,quant,valor
List<PedidoItem> pedido = new List<PedidoItem>();
while (dr.Read())
{
PedidoItem item = new PedidoItem();
item.Id = dr.GetInt32(dr.GetOrdinal([Ô]id[Ô]));
item.Item = dr.GetInt32(dr.GetOrdinal([Ô]item[Ô]));
item.Descricao = dr.GetString(dr.GetOrdinal([Ô]descricao[Ô]));
item.Unidade = dr.GetString(dr.GetOrdinal([Ô]unidade[Ô]));
item.Quant = dr.GetInt32(dr.GetOrdinal([Ô]quant[Ô]));
item.Valor = dr.GetFloat(dr.GetOrdinal([Ô]valor[Ô]));
pedido.Add(item);
}
return pedido;
}
}
}
}
public List<PedidoItem> carrega_novo_pedido(int id)
{
[txt-color=#e80000]List<PedidoItem> _return = null;[/txt-color]
string vsql = [Ô]SELECT id,item,descricao,unidade,quant,valor FROM item_pedido where id_pedido = @idpedido[Ô];
SqlCommand sqlcmd = null;
if (this.conectar())
{
sqlcmd = new SqlCommand(vsql, objcon);
sqlcmd.Parameters.AddWithValue([Ô]idpedido[Ô], id);
using (SqlDataReader dr = sqlcmd.ExecuteReader())
{
if (dr.HasRows)
{
//id,item,descricao,unidade,quant,valor
List<PedidoItem> pedido = new List<PedidoItem>();
if (dr.HasRows)
{
_return = new List<PedidoItem>();
while (dr.Read())
{
PedidoItem item = new PedidoItem();
item.Id = dr.GetInt32(dr.GetOrdinal([Ô]id[Ô]));
item.Item = dr.GetInt32(dr.GetOrdinal([Ô]item[Ô]));
item.Descricao = dr.GetString(dr.GetOrdinal([Ô]descricao[Ô]));
item.Unidade = dr.GetString(dr.GetOrdinal([Ô]unidade[Ô]));
item.Quant = dr.GetInt32(dr.GetOrdinal([Ô]quant[Ô]));
item.Valor = dr.GetFloat(dr.GetOrdinal([Ô]valor[Ô]));
[txt-color=#e80000]_return.Add(item);[/txt-color]
[txt-color=#e80000]//pedido.Add(item);[/txt-color]
}
}
}
}
[txt-color=#e80000]return _return;[/txt-color]
}
A propósito, não recebi nada no meu e-mail, mas de preferência, dúvidas, somente aqui no fórum, ok?
Kerp fiz a alteração porém .. agora ele segue com o seguinte erro
public List<PedidoItem> carrega_novo_pedido(int id)
{
string vsql = [Ô]SELECT id,item,descricao,unidade,quant,valor FROM itens_pedido where id_pedido = @idpedido[Ô];
SqlCommand sqlcmd = null;
if (this.conectar())
{
List<PedidoItem> _retorno = new List<PedidoItem>();
sqlcmd = new SqlCommand(vsql, objcon);
sqlcmd.Parameters.AddWithValue([Ô]idpedido[Ô], id);
using (SqlDataReader dr = sqlcmd.ExecuteReader())
{
if (dr.HasRows)
{
//id,item,descricao,unidade,quant,valor
//List<PedidoItem> pedido = new List<PedidoItem>();
while (dr.Read())
{
PedidoItem item = new PedidoItem();
item.Id = dr.GetInt32(dr.GetOrdinal([Ô]id[Ô]));
item.Item = dr.GetInt32(dr.GetOrdinal([Ô]item[Ô]));
item.Descricao = dr.GetString(dr.GetOrdinal([Ô]descricao[Ô]));
item.Unidade = dr.GetString(dr.GetOrdinal([Ô]unidade[Ô]));
[txt-color=#e80000] item.Quant = dr.GetInt32(dr.GetOrdinal([Ô]quant[Ô])); <-- Specified cast is not valid. [/txt-color]
item.Valor = dr.GetFloat(dr.GetOrdinal([Ô]valor[Ô]));
_retorno.Add(item);
}
}
}
return _retorno;
}
else
{
return null;
}
}
o campo quantidade é do tipo float.!!... se vcs puderem me ajudar.!!
vlw
public List<PedidoItem> carrega_novo_pedido(int id)
{
string vsql = [Ô]SELECT id,item,descricao,unidade,quant,valor FROM itens_pedido where id_pedido = @idpedido[Ô];
SqlCommand sqlcmd = null;
if (this.conectar())
{
List<PedidoItem> _retorno = new List<PedidoItem>();
sqlcmd = new SqlCommand(vsql, objcon);
sqlcmd.Parameters.AddWithValue([Ô]idpedido[Ô], id);
using (SqlDataReader dr = sqlcmd.ExecuteReader())
{
if (dr.HasRows)
{
//id,item,descricao,unidade,quant,valor
//List<PedidoItem> pedido = new List<PedidoItem>();
while (dr.Read())
{
PedidoItem item = new PedidoItem();
item.Id = dr.GetInt32(dr.GetOrdinal([Ô]id[Ô]));
item.Item = dr.GetInt32(dr.GetOrdinal([Ô]item[Ô]));
item.Descricao = dr.GetString(dr.GetOrdinal([Ô]descricao[Ô]));
item.Unidade = dr.GetString(dr.GetOrdinal([Ô]unidade[Ô]));
[txt-color=#e80000] item.Quant = dr.GetInt32(dr.GetOrdinal([Ô]quant[Ô])); <-- Specified cast is not valid. [/txt-color]
item.Valor = dr.GetFloat(dr.GetOrdinal([Ô]valor[Ô]));
_retorno.Add(item);
}
}
}
return _retorno;
}
else
{
return null;
}
}
o campo quantidade é do tipo float.!!... se vcs puderem me ajudar.!!
vlw
Qual o tipo de dados do campo [Ô]quant[Ô]? Tem que ser um tipo de dados compatÃvel com Int32, que deve ser um inteiro entre -2.147.483.648 e 2.147.483.647
é do tipo float
Então, a propriedade [Ô]Quant[Ô], deve ser do tipo de dados double e você deve usar o método GetDouble para buscar o valor.
Tópico encerrado , respostas não são mais permitidas