• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

brunomoniz

C# - Erro ao actualizar um campo de uma BD em MSQL

1 mensagem neste tópico

Boas...

Eu tenho uma BD em MSQL onde existe um campo do tipo money.

Quando tento actualizar a BD através de uma aplicação web que estou desenvolvendo em C#, ele dá-me um erro:

$exception {"Cannot convert a char value to money. The char value has incorrect syntax."} System.Exception {System.Data.OleDb.OleDbException}

Eu não estou a ver como resolvo este problema. Aqui está a parte do código onde construo o comando select e onde a excepção acontece:

        public AcessoDadosEnum actualizarEMENTA(string username, string password, long idementa,
                                                string nome, string designacao, decimal preco,
                                                int disponivel)
        {
            AcessoDadosEnum status = AcessoDadosEnum.NOT_OK;
            OleDbConnection conn = null;

            try
            {
                // Valida o administrador
                status = UtilBD.validaAdministrador(username, password);
                if (status != AcessoDadosEnum.OK)
                    return AcessoDadosEnum.INVALID_LOGIN;

                // Cria objecto de conexão à Base de Dados e abre a conexão
                conn = new OleDbConnection(UtilBD.CONN);
                conn.Open();

                // Cria o comando SQL a executar
                string sqlCmd = "UPDATE EMENTA SET NOME=?,DESIGNACAO=?,PRECO=?,DISPONIVEL=? "
                                + "WHERE IDEMENTA = " + idementa.ToString();



                OleDbCommand cmd = new OleDbCommand(sqlCmd, conn);
                cmd.Parameters.AddWithValue("nome", nome);
                cmd.Parameters.AddWithValue("preco",preco);
                cmd.Parameters.AddWithValue("designacao", designacao);
                cmd.Parameters.AddWithValue("disponivel", disponivel);
                
                // Executa o comando SQL
                int insRows = cmd.ExecuteNonQuery();

                // Verifica se actualizou a ementa na base de dados
                if (insRows == 0)
                    status = AcessoDadosEnum.NOT_OK;
                else
                    status = AcessoDadosEnum.OK;
            }
            catch (OleDbException ex)
            {
                System.Console.WriteLine("EXCEPÇÃO no método 'actualizarEMENTA': " + ex.Message);
                status = AcessoDadosEnum.ERROR;
            }
            finally
            {
                // Fecha a conexão
                if (conn.State == ConnectionState.Open)
                    conn.Close();
            }

            return status;

        }

Alguma ideia??

Obrigado pelo tempo,

Bruno

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora