Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

antoniosete

[Resolvido] somar dados no datagridview

Recommended Posts

antoniosete

Boas

estou a trabalhar com um datagrid e o que eu quero fazer é o seguinte:

tenho uma coluna com o numero do empregado e mais três colunas com três tipos de matérias diferentes.Como faço para que quando insira o numero do empregado numa textbox me apareça numa MessageBox.Show tudo o que ele levantou de material.O que eu queria era que através do numero o programa percorres toda alinha e disse-se o que o empregado x levantou e soma-se.Mas ha outro problema o mesmo empregado pode levantar vários materiais em em tempos diferentes ou seja o numero do empregado podia aparecer varias vezes na coluna.O que eu tenho de código é isto mas...não consigo chegar lá.

Estou a ir buscar os dados a outra windosform e nesta windosform faço a pesquisa atraves da datagrid

int n = 0;
int z =  0;
int b1 = 0, b2 = 0, b3 = 0;
n = Convert.ToInt32(texnumero.Text);
if (Convert.ToInt32(grade1.Rows[z].Cells[1].Value) == n)


for (int i = 0; i < grade1.Rows.Count; ++i)
               {

                   b1 += Convert.ToInt32(grade1.Rows[i].Cells[2].Value);
                   b2 += Convert.ToInt32(grade1.Rows[i].Cells[3].Value);
                   b3 += Convert.ToInt32(grade1.Rows[i].Cells[4].Value);
}
MessageBox.Show("chave1---------\t" + b1 + "\nchave2--------\t" + b2 + "\nchave3----------\t" + b3);

Edited by pmg
GeSHi

Share this post


Link to post
Share on other sites
NoLabel

Se percebi bem tens um datagrid que tem 4 colunas, sendo que a primeira é o id do empregado e as restantes são tipos de material. Cada vez que um empregado levanta material é inserida uma nova row, certo? Se assim for, porque não usas loop para percorrer todas as rows existentes no datagrid, comparas o id com o inserido na textbox, se for igual incrementas numa variável o valor de material levantado.

Share this post


Link to post
Share on other sites
antoniosete

Sim é um datagrid que tem 5 colunas a primeira e´o id da base de dados a segunda é o numero do empregado é nesta que eu quero fazer a pesquisa e comparação.para que no MessageBox.show venha descriminado o que ele levantou e a quantidade de cada produto EX:

O empregado X levantou a ( numero de vezes)chave1 + b1+ a chave2 +b2+ e a chave3 +b3

Assim faço a contagem depois da comparação

for (int i = 0; i < grade1.Rows.Count; ++i)
{

b1 += Convert.ToInt32(grade1.Rows[i].Cells[2].Value);
b2 += Convert.ToInt32(grade1.Rows[i].Cells[3].Value);
b3 += Convert.ToInt32(grade1.Rows[i].Cells[4].Value);
}
MessageBox.Show("chave1---------\t" + b1 + "\nchave2--------\t" + b2 + "\nchave3----------\t" + b3);

se poderes me dar uma ajuda agradeço

Edited by pmg
GeSHi

Share this post


Link to post
Share on other sites
rezanov
int b1 = 0;
	 int b2 = 0;
	 int b3 = 0;

	 foreach (DataGridViewRow row in dataGridView1.Rows)
	 {
		 if (row.Cells["id_empregado"].Value.ToString() == "IDX")
		 {
			 b1 += Convert.ToInt32(row.Cells["coluna_chave1"].Value.ToString());
			 b2 += Convert.ToInt32(row.Cells["coluna_chave2"].Value.ToString());
			 b3 += Convert.ToInt32(row.Cells["coluna_chave3"].Value.ToString());
		 }
	 }
	 MessageBox.Show(string.Format("chave1: {0} chave2: {1} chave3: {2}", b1, b2, b3));

Edited by rezanov

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.