Jump to content

Recommended Posts

Posted (edited)

Agora que estou na minha máquina, fiz-te um exemplo:

//declara variaveis
int i = dataGridView1.CurrentRow.Index,conta;
String decrementa;
//vai buscar o valor da coluna
decrementa = dataGridView1.CurrentRow.Cells["TESTE"].Value.ToString();
//converte para inteiro
int valor = Convert.ToInt32(decrementa);
conta = valor - 1;
//imprime
MessageBox.Show(conta.ToString());
Edited by Caça
GeSHi

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Posted (edited)

Obrigada pela ajuda ele ja ta a fazer -1 (que mostra numa messagem)

mas nao ta a mudar na base dados, como é que eu posso fazer para ele ir buscar a base dados e fazer o -1?

Até agora tenho este codigo:

	 int i = dataGridView1.CurrentRow.Index, conta;
	 String decrementa;
	 SqlConnection sqlConn = null;
	 string strCoon = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\caminho para a base dados
	 sqlConn = new SqlConnection(strCoon);

	 try
	 {
		 sqlConn.Open();
		 string select = "select NomeColuna from NomeTabela";
		 SqlCommand cmd = new SqlCommand(select, sqlConn);
		 cmd = new SqlCommand(select, sqlConn);
		 SqlDataReader reader = cmd.ExecuteReader();	
		 decrementa = dataGridView1.CurrentRow.Cells["NomeColuna"].Value.ToString();
		 int valor = Convert.ToInt32(decrementa);
		 conta = valor - 1;
		 MessageBox.Show(conta.ToString());
	 }
	 catch (Exception ex)
	 {
		 MessageBox.Show(ex.Message);
	 }
	 finally
	 {
		 sqlConn.Close();
	 }
Edited by Caça
GeSHi
Posted (edited)

Porque estás a fazer um SELECT e tens que fazer um UPDATE.

Algo deste género (BD SQL):


try
{
 SqlConnection sqlConn = null;
 string strCoon = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\caminho para a base dados"
 sqlConn = new SqlConnection(strCoon);

 conn.Open();
 using (SqlCommand cmd =
 new SqlCommand("UPDATE NOMETABELA SET CAMPODECREMENTADO=@CAMPODECREMENTADO WHERE Id=@Id", conn))

 cmd.Parameters.AddWithValue("@Id", 1);
 cmd.Parameters.AddWithValue("@CAMPODECREMENTADO", dataGridView1.CurrentRow.Cells["NomeColuna"].Value.ToString());
 int rows = cmd.ExecuteNonQuery();

}
catch (SqlException ex)
{
//Log exception
//Display Error message
}
Edited by Caça
GeSHi

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Posted (edited)
	private void button1_Click(object sender, EventArgs e)
	{
	   int i = dataGridView1.CurrentRow.Index, conta;
	   String decrementa;
	   SqlConnection sqlConn = null;
	   string strCoon = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Caminho para a base dados";
	   sqlConn = new SqlConnection(strCoon);

	   try
	   {
		   sqlConn.Open();
		   string select = "select NomeColuna from NomeTabela";
		   SqlCommand cmd = new SqlCommand(select, sqlConn);
		   cmd = new SqlCommand(select, sqlConn);
		   SqlDataReader reader = cmd.ExecuteReader();	
		   decrementa = dataGridView1.CurrentRow.Cells["NomeColuna"].Value.ToString();
		   int valor = Convert.ToInt32(decrementa);
		   conta = valor - 1;
		   MessageBox.Show(conta.ToString());

reader.Close();
reader.Dispose();
		   string update = "update NomeTabela set  NomeColuna=@NomeColuna where ID = @ID";
		   SqlCommand cmd1 = new SqlCommand(update, sqlConn);
		   cmd1.Parameters.Add("@ID", SqlDbType.Int).Value = txtID.Text;
		   cmd1.Parameters.AddWithValue("@NomeColuna", dataGridView1.CurrentRow.Cells["NomeColuna"].Value.ToString());
		   int rows = cmd1.ExecuteNonQuery();

	   }
	   catch (Exception ex)
	   {
		   MessageBox.Show(ex.Message);
	   }
	   finally
	   {
		   sqlConn.Close();
	   }
	}

Continua a mandar a messagem com "49" mas nao me altera na base dados :/

Edited by ProgramadoraR
Falta LP no GeSHi
Posted

Não, estás a pensar completamente errado!

Para fazer o update, não tens que fazer o select quando carregas na celula da datagrid.. faz como te disse: no evento load do formulário põe o código para abastecer a datagrid (o select). Se tiveres dúvidas vê aqui.

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Posted

Boas, agora estou com um problema parecido ao anterior.

Eu tenho duas tabelas (tabela1 e tabela2)

E tenho um form com um datagridview em que mostra os dados da tabela1, no qual uma coluna da tabela1 tem o id da tabela2, e estas estão relacionadas

E o meu objectivo é quando selecionar uma linha num datagridview com os dados da tabela1 que tem esse id alterar-me os dados da tabela2 com o mesmo id da tabela1

E entao o que eu tenho de fazer, penso que seja um select do id da tabela1, para depois fazer um update na tabela2 da linha que foi selecionada, certo?

Desde já obrigada

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
×
×
  • Create New...

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.