Inquiridor
Adicionar dados em colunas de um datagridview em C#

Pergunta
-
Blz amigos!!
Estou com uma dúvida sobre uma forma em particular de preencher um datagridview, estou querendo inserir célula por célula através da função: datagridview.Rows[h].Cells[i].Value = dado; porém para fazer desta forma, a opção enable adding precisa estar habilitada, e eu não gostaria de habilitá-la. tem alguma outra forma?
Desde já agradeço.
Todas as Respostas
-
Eu geralmente faço independente de estar habilitado ou não essa opção, através de DataTable, você vai adicionar dado a dado em tempo de execução ou vai carregar todos os dados de uma única vez?
Se for para carregar uma única vez pose ser dessa forma:
//Crio o dataTable DataTable dt = new DataTable(); //Crio as colunas dt.Columns.Add("COLUNA1"); dt.Columns.Add("COLUNA2"); dt.Columns.Add("COLUNA3"); dt.Columns.Add("COLUNA4"); dt.Columns.Add("COLUNA5"); DataRow row = dt.NewRow(); row[0] = "Primeiro Valor"; //Adiciona o conteudo da Linha dt.Rows.Add(row); //Carrega a grid com os valores dataGridView1.DataSource = dt.DefaultView;
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
-
Olá!
Estes links também podem te ajudar:https://msdn.microsoft.com/pt-br/library/dyyesckz%28v=vs.110%29.aspx
https://msdn.microsoft.com/pt-br/library/zkatshfa%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
http://www.macoratti.net/08/08/c_pdgv1.htm
Espero ter contribuído
MS INFORMATICA - Projeto Marinner
- Editado Márcio Silva Lima segunda-feira, 6 de abril de 2015 12:16
-
Marcio, obrigado pelas dicas, mas estas formas aí são as que eu sempre faço, mas elas não estão resolvendo o meu caso.
Mr. GMSOFT, esta sua dica quase resolveu, o problema é meu datagrid já possui as colunas, eu só tenho que populá-las, e no exemplo que vc deu ele está criando outras colunas na frente das que já tem, sabe me dizer como faço com este exemplo seu sem que crie novas colunas?
Eu coloquei sem a adição das colunas, desta forma:
DataRow row = dt.NewRow(); row[linha] = batida; //Adiciona o conteudo da Linha dt.Rows.Add(row);
linha++;mas está dando erro no índice da row, diz que não encontrou o índice 0.
- Editado Vinicius_kruz segunda-feira, 6 de abril de 2015 17:34
-
-
Se for dentro de um loop tem que ser dessa forma:
for (int linha=0;linha<totalLinhas;linha++) { row = dt.NewRow(); row[linha] = batida; dt.Rows.Add(row); }
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
-
-
-
Sim, testei.
Deixa eu explicar melhor o que estou fazendo, de repente alguém tenha uma engenharia que possa funcionar melhor.
Eu tenho uma tabela no banco de dados com os seguintes dados:
MAR_ID PES_ID MAR_DATAHORA MAR_MAN_EQ
1 1 05/04/2015 08:10:00 E
2 1 05/04/2015 11:14:00 E
3 1 05/04/2015 13:05:00 E
4 1 05/04/2015 18:10:00 E
5 1 06/04/2015 08:01:00 E
6 1 06/04/2015 12:06:00 E
7 1 06/04/2015 14:00:00 E
8 1 06/04/2015 19:08:00 EE eu preciso lançar isto em um datagridview da seguinte forma:
DATA E1 S1 E2 S2 E3 S3 E4 S4
05/04 08:10 11:14 13:05 18:10
06/04 08:01 12:06 14:00 19:08
Como eu pensei em fazer (até fiz, mas não deu certo ainda):
em um loop eu pego todos os registros referentes a um dia na tabela selecionando e reordenando um ao lado do outro:
string[] dados=new string[4]; int index=0; while (reader.Read()) { DateTime k = Convert.ToDateTime(reader.GetValue(0)); if (index == 0) { dados[index] = k.ToString("dd/mm"); index++; dados[index] = k.ToString("HH:mm"); index++; } else { dados[index] = k.ToString("HH:mm"); index++; } }
Desta forma acima está dando parcialmente certo, está dando uns erros de índices, mas tirando eles o resultado é quase o esperado.
Agora vou ver o que faço pra corrigir os erros de índices e ver no que vai dar.
- Editado Vinicius_kruz terça-feira, 7 de abril de 2015 21:33
-