How is crud to update the records in SQL Server by Visual Studio C#?

Asked

Viewed 343 times

0

I am using this code, it does not error but does not update the data

    public static int attLoja(LojaVirtual loja)
    {
        int resposta = 0;



        using (OdbcConnection conexao = ConexaoPadrao.CreateConnection())
        {
            string sql = "UPDATE tbLoja SET nomeLoja = ?, descLoja = ?, email = ?, telefone = ?, celular = ?,"
            +"cnpj = ?, incEst = ?, idCidade = ?, bairro = ?, rua = ?, numero = ?, complemento = ?,"
            +"idUsuario = ? WHERE idLoja = ?";
            OdbcCommand comando = new OdbcCommand(sql, conexao);

            comando.Parameters.AddWithValue("@idLoja", loja.idLoja);
            comando.Parameters.AddWithValue("@nomeLoja", loja.nomeLoja);
            comando.Parameters.AddWithValue("@descLoja", loja.descLoja);
            // comando.Parameters.AddWithValue("@imagemPerfil", null);
            comando.Parameters.AddWithValue("@email", loja.email);
            comando.Parameters.AddWithValue("@telefone", loja.telefone);
            comando.Parameters.AddWithValue("@celular", "2313");
            comando.Parameters.AddWithValue("@cnpj", loja.cnpj);
            comando.Parameters.AddWithValue("@incEst", loja.incEst);
            comando.Parameters.AddWithValue("@idCidade", loja.idCidade);
            comando.Parameters.AddWithValue("@bairro", loja.bairro);
            comando.Parameters.AddWithValue("@rua", loja.rua);
            comando.Parameters.AddWithValue("@numero", loja.numero);
            comando.Parameters.AddWithValue("@complemento", loja.complemento);
            comando.Parameters.AddWithValue("@idUsuario", loja.idUsuario);

            try
            {
                conexao.Open();
                comando.ExecuteNonQuery();
            }
            catch (Exception)
            {
                resposta = 2;
            }

            finally
            {
                conexao.Close();
            }


        }
        return resposta;

    }

2 answers

2


I managed to solve the result was this

public static int attLoja(LojaVirtual loja)
    {
        int resposta = 0;



        using (OdbcConnection conexao = ConexaoPadrao.CreateConnection())
        {
            string sql = "UPDATE tbLoja SET nomeLoja = ?, descLoja = ?, email = ?, telefone = ?, celular = ?,"
            +"cnpj = ?, incEst = ?, idCidade = ?, bairro = ?, rua = ?, numero = ?, complemento = ?,"
            +"idUsuario = ? WHERE idLoja = ?";
            OdbcCommand comando = new OdbcCommand(sql, conexao);


            comando.Parameters.AddWithValue("@nomeLoja", loja.nomeLoja);
            comando.Parameters.AddWithValue("@descLoja", loja.descLoja);
            // comando.Parameters.AddWithValue("@imagemPerfil", null);
            comando.Parameters.AddWithValue("@email", loja.email);
            comando.Parameters.AddWithValue("@telefone", loja.telefone);
            comando.Parameters.AddWithValue("@celular", "2313");
            comando.Parameters.AddWithValue("@cnpj", loja.cnpj);
            comando.Parameters.AddWithValue("@incEst", loja.incEst);
            comando.Parameters.AddWithValue("@idCidade", loja.idCidade);
            comando.Parameters.AddWithValue("@bairro", loja.bairro);
            comando.Parameters.AddWithValue("@rua", loja.rua);
            comando.Parameters.AddWithValue("@numero", loja.numero);
            comando.Parameters.AddWithValue("@complemento", loja.complemento);
            comando.Parameters.AddWithValue("@idUsuario", loja.idUsuario);
            comando.Parameters.AddWithValue("@idLoja", loja.idLoja);

            try
            {
                conexao.Open();
                comando.ExecuteNonQuery();
            }
            catch (OdbcException e)
            {
                resposta = 1;
            }
            catch (Exception e)
            {
                resposta = 2;
            }

            finally
            {
                conexao.Close();
            }


        }
        return resposta;

    }

0

Use the parameter names (@idLoja, @nomeLoja) in the query instead of the ?.

Your update would look like this:

string sql = "UPDATE tbLoja SET nomeLoja = @nomeLoja WHERE idLoja = @idLoja";
OdbcCommand comando = new OdbcCommand(sql, conexao);
comando.Parameters.AddWithValue("@idLoja", loja.idLoja);
comando.Parameters.AddWithValue("@nomeLoja", loja.nomeLoja);

I have omitted other fields for validation purposes. You can try to do the same until you get the satisfactory result.

  • I tested and it didn’t work, I’m using Odbcconnection to make the connection

Browser other questions tagged

You are not signed in. Login or sign up in order to post.