Usuário com melhor resposta
Montar DataTable com GridView

Pergunta
-
Olá
Tenho uma Gridview .Uma coluna é populada no evento RowDataBound , pois se trata da soma de duas outras colunas , preciso usar o filter do DataView para que busque ( ex : somente linhas onde essa coluna de soma seja maior que 5).Portanto , não posso criar uma DataView a partir do DataTable , pois nele a coluna de soma ainda não está populada. Queria então criar a DataView a partir da GridView. Existe um método do tipo Clone, Copy...enfim...preciso de uma dica Grato
Respostas
-
pq vc ja nao tras essa soma da sua consulta pronto para seu datatable
- Marcado como Resposta Eduardo Eiji segunda-feira, 20 de setembro de 2010 20:56
Todas as Respostas
-
por que vc nao coloca a formula direto no seu datatable ? segue uma ideia:
DataTable dt = new DataTable(); dt.Columns.Add("nome", typeof(string)); dt.Columns.Add("v1", typeof(int)); dt.Columns.Add("v2", typeof(int)); dt.Columns.Add("v3",typeof(int)); dt.Columns["v3"].Expression = "v1 + v2"; dt.Rows.Add(new object[] { "valor 1", 1, 1 }); dt.Rows.Add(new object[] { "valor 2", 2, 4 }); dt.Rows.Add(new object[] { "valor 3", 15, 6 }); dt.Rows.Add(new object[] { "valor 4", 100, 150 });
-
-
SqlConnection conn = new SqlConnection("Data Source=M1256341;Initial Catalog=Entites;Integrated Security=True"); conn.Open(); SqlDataAdapter dta = new SqlDataAdapter("select 1,1", conn); DataSet ds = new DataSet(); dta.Fill(ds); ds.Tables[0].Columns.Add("calculado", typeof(int), "Column1 + Column2"); var a = ds.Tables[0].Rows[0][2];
o exemplo abaixo modifica as colunas em tempo de execução de um dataset depois de ter recebido deu m banco de dados, pode ser que lhe ajude no que vc quer
-
pq vc ja nao tras essa soma da sua consulta pronto para seu datatable
- Marcado como Resposta Eduardo Eiji segunda-feira, 20 de setembro de 2010 20:56
-
Ué..pq não pensei nisso antes....a minha grid contém 55 colunas...buscando dados de várias tabelas ,e logo pensei q no rowdatabound , já que não tenho os dados gravados , porém posso calcular no select do sql....valeu por abrir a mente , Senhores Seilor e Olavo....valeu!!!!
-
-
-
sim, é possivel embutir formulas matematicas bem complexas na query, segue um pequeno exemplo:
create table #valores(val1 int, val2 int, val3 int) GO insert into #valores values(1,2,3),(2,4,5),(5,6,7),(10,20,30),(16,17,19),(60,0,3) GO select * from #valores GO select val1,val2,val3, val1+val2+val3/3 [Média], case when val2=0 then (val1+val3) when val2>0 then (val1+val3)/val2 end [calculo] from #valores