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