UPDATE em C#

Galera estou com problema em inserir um valor no MySQL. Tento criar na parte de depósito de um valor para o saldo do cliente, primeiro busco as informações do cliente através do id com a função lerSaldo() que retorna o saldo do cliente, e na função depositar() eu concateno o valor do saldo com o valor que o usuário inseriu para efetuar o depósito e assim eu jogo esta variável no comando SQL UPDATE para atualizar o saldo do cliente com o novo valor, porém esta gerando erros
Código:

`        public string lerSaldo(string sql)`
        {
            try
            {
                
                MySqlCommand query = new MySqlCommand(sql, conexao);
                MySqlDataReader result = query.ExecuteReader();
                string saldo = "";
                if (result.Read())
                {
                    saldo = result[5].ToString();
                    
                }
                result.Close();
                
                return saldo;
            }
            catch(MySqlException e)
            {
                return "Erro ao captar o saldo: "+e;
            }
        }

        public string Depositar(string sql, string deposit, decimal id) {
            try
            {
                conexao.Open();
               decimal saldoCli = Convert.ToDecimal(lerSaldo(sql));
               decimal valorDeposito = Convert.ToDecimal(deposit);
               decimal novoSaldo = saldoCli += valorDeposito;
               string sql2 = "UPDATE `clientes` SET `saldo` = " + novoSaldo + " WHERE IDcli = "+id;


                MySqlCommand query = new MySqlCommand(sql2, conexao);
                
                query.ExecuteNonQuery();
                conexao.Close();

                return "Depositado com sucesso";
            }
            catch (MySqlException e)
            {
                conexao.Close();
                return ""+e;

            }
        
    }

` o parâmetro “sql” que as funções depositor() e lerSaldo(), recebe é um parâmetro de select que efetua a busca do cliente atráves do ID que é informado pelo usuário:

`
             Connection conexao = new Connection();
                decimal id = numID.Value;
                string sql = "select * from clientes where  IDcli = "+id;

            string valor = numDeposit.Value.ToString();
            valor.Replace(',', '.');

           string operacao = conexao.Depositar(sql,valor,id);

            lblMsg.Text = operacao;

Erro:
# [MySql Syntax error: You have an error in your SQL syntax near '00 WHERE IDcli = 1 at line 1

Você tem certeza que na sua tabela Clientes existe uma coluna chamada IDcli ?

Se a coluna existe, qual o tipo de dados dela(int, varchar, etc) ?

Sim existe, ela é do tipo INT e é CHAVE PRIMARIA, AUTO-INCREMENT

Acredito que nesta coluna esta tudo certo, pois utilizo uma função “salvarCliente” que aplica um INSERT e tudo funciona normalmente

Porém na hora de aplicar este update da este erro :frowning:

Remova as crases(`) da sua query, elas não são necessárias e podem ser a causa erro.

Deve ficar assim:

string sql2 = "UPDATE clientes SET saldo = " + novoSaldo + "WHERE IDcli = " + id;