none
SELECT DADOS DA BD PAR ALTERAÇÂO RRS feed

  • Pregunta

  • Buenos dias.

    Estoy Haciendo una aplicacion. E deseo selecionar dados em una Bd para modificarlo solo que  my codigo no funciona.

    //Botão Alterar pelo Nome

    private void butAlterarNomea_Click(object sender, EventArgs e)

    {

    if (string.IsNullOrEmpty(textCodigoNomea.Text))

    {

    textCodigoNomea.Focus();

    MessageBox.Show("Informe o Código da Nomeação que deseja excluir!");

    textCodigoNomea.Focus();

    return;

    }

    using (SqlConnection con = Conexao.coneta())

    {

    try

    {

    //Motamos a Instrução SQL

    string SQL = "UPDATE Nomeacoes SET codigoNomeacao = '" + textCodigoNomea.Text + "', nomedaAccaoNomeada = '" + comboProgNomeaçao.Text + "', codProg = '" + comboProgNomeaçao.Text + "', codProj = " + comboProjNomeacao.Text + ", entidade = '" + comboEntidadeActuacao.Text + "', responomeado = '" + comboRespAcçao.Text + "', adjunto1 = '" + combo1Adjun.Text + "', adjunto2 = '" + combo2Adjun.Text + "', adjunto3 = '" + combo3Adjun.Text + "', adjunto4 = '" + combo4Adjun.Text + "', adjunto5 = '" + combo5Adjun.Text + "', nomeadopor = '" + comboNomeadoPor.Text + "', data = " + dateNomeacao.Text + ";";

    SqlCommand cmd = new SqlCommand(SQL, con);

    cmd.ExecuteNonQuery();

    MessageBox.Show("Registros actualizados.");

    //Chamamos o Metodo carrega Dados

    carregaDadosNoForm(codigoNomeacao);

    }

    catch (Exception ex)

    {

    MessageBox.Show(ex.ToString());

    }

    finally

    {

    Conexao.desconeta();

    }

    }

    }

    //Metodo para Carregar dados no Formulário

    public void carregaDadosNoForm(string codigoNomeacao)

    {

    using (SqlConnection con = Conexao.coneta())

    {

    try

    {

    //Motamos a Instrução SQL como Paramentro para evitar injecção;

    string SQL = "SELECT * FROM Nomeacoes WHERE codigoNomeacao = '" + codigoNomeacao;

    SqlCommand cmd = new SqlCommand(SQL, con);

    DataSet ds = new DataSet();

    SqlDataAdapter da = new SqlDataAdapter(cmd);

    SqlDataReader dr;

    //Actualiza Linhas do DataSet

    da.Fill(ds,

    "Nomeacoes");

    dr = cmd.ExecuteReader();

    while (dr.Read())

    {

    textCodigoNomea.Text = dr[

    "codigoNomeacao"].ToString();

    comboProgNomeaçao.Text = dr[

    "cobProg"].ToString();

    comboProjNomeacao.Text = dr[

    "codProj"].ToString();

    comboNomeAccaoNomeada.Text = dr[

    ""].ToString();

    comboEntidadeActuacao.Text = dr[

    "entidade"].ToString();

    comboRespAcçao.Text = dr[

    "responomeado"].ToString();

    combo1Adjun.Text = dr[

    "adjunto1"].ToString();

    combo2Adjun.Text = dr[

    "adjunto2"].ToString();

    combo3Adjun.Text = dr[

    "adjunto3"].ToString();

    combo4Adjun.Text = dr[

    "adjunto4"].ToString();

    combo5Adjun.Text = dr[

    "adjunto5"].ToString();

    comboNomeadoPor.Text = dr[

    "nomeadopor"].ToString();

    dateNomeacao.Text = dr[

    "data"].ToString();

    }

    }

    catch (Exception ex)

    {

    MessageBox.Show(ex.ToString());

    }

    finally

    {

    con.Close();

    }

    }

    }


    NekFred,Lda

    lunes, 13 de agosto de 2012 11:44

Todas las respuestas

  • hola

    el primer probema que notos es que no usas parametros, concatener en un string la query no esta correcto

    string SQL = "UPDATE Nomeacoes SET codigoNomeacao = @CodigoNomea, nomedaAccaoNomeada = @ProgNomeaçao, ... data = @Nomeacao";
    
    SqlCommand cmd = new SqlCommand(SQL, con);
    cmd.Parameters.AddWithValue("@CodigoNomea", textCodigoNomea.Text);
    cmd.Parameters.AddWithValue("@CodigoNomea", textCodigoNomea.Text);
    .
    .
    .
    cmd.Parameters.AddWithValue("@Nomeacao", dateNomeacao.Text);
    
    cmd.ExecuteNonQuery();

    lo que si es raro es porque no defines ningun WHERE en el UPDATE, porque deberias indicar a que registro impactas la actualizacion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 13 de agosto de 2012 17:51