Error saving data from a form in DB with C #

-1

Is my registration logic right? Because I can not write the fields in the Database, the button code below follows:


private void cmdSalvarGuiche_Click_1(object sender, EventArgs e)
    {
        if (MessageBox.Show(this, "Deseja realmente Salvar o item selecionado", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes)
        {
            if (lstTipoSenha_id.SelectedIndex >= 0)
            {
                string guiche = "";
                string computador = "";
                int tipoSenha_id = 0;
                int ordem = 0;
                bool podeAtenderOutros = true;
                string filaDoGuiche = "";
                string funcionario = "";
                try
                {
                    if ((lstTipoSenha_id.SelectedIndex >= 0) && (lstTipoSenha_id.Text.Trim().Length > 0))
                        tipoSenha_id = Convert.ToInt32(oAtende.dtGuiches.Rows[lstTipoSenha_id.SelectedIndex]["id"]);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro : " + ex.Message);
                }

                if (tipoSenha_id == 0)
                {
                    MessageBox.Show(this, "Informar o tipo da senha é brigatório", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    lstTipoSenha_id.Focus();
                    return;
                }

                if (guiche == "")
                {
                    MessageBox.Show(this, "Informar a fila do Guiche é brigatório", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    this.ActiveControl = txtGuiche;
                    return;
                }

                if (ordem == 0)
                {
                    MessageBox.Show(this, "Informar a ordem é brigatório", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    this.ActiveControl = txtOrdem;
                    return;
                }

                if (funcionario == "")
                {
                    MessageBox.Show(this, "Informar o nome completo é brigatório", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    this.ActiveControl = txtFuncionario;
                    return;
                }
                if (podeAtenderOutros == false)
                {
                    MessageBox.Show(this, "Informar a opção de atender outros é brigatório", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    this.ActiveControl = cbPodeAtenderOutros;
                    return;
                }

                try
                {
                    if ((lstFilaDoGuiche.SelectedIndex >= 0) && (lstFilaDoGuiche.Text.Trim().Length > 0))
                        tipoSenha_id = Convert.ToInt32(lstTipoSenha_id.SelectedValue);
                }

                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao cadastrar a fila do guiche!!! Por favor verifique o campo: " + ex.Message);
                }

                if (filaDoGuiche == "")
                {
                    MessageBox.Show(this, "Informar a fila do Guiche é brigatório", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    lstFilaDoGuiche.Focus();
                    return;
                }

                if (computador == "")
                {
                    MessageBox.Show(this, "Informar o computador é brigatório", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    this.ActiveControl = txtComputador;
                    return;
                }

                if (id > 0)
                {

                    if (MessageBox.Show(this, "Deseja alterar a senha: " + Environment.NewLine + " " + guiche + " " + computador + " " + " " + tipoSenha_id + " " + Ordem + " " + podeAtenderOutros + " " + filaDoguiche + " " + funcionario + "" + Environment.NewLine +
                        "para: " +
                        Environment.NewLine +
                        "    " + lstTipoSenha_id.Text + " " + lstFilaDoGuiche.Text + " " + txtOrdem.Text + "?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
                    {
                        return;
                    }
                }

                //chama o método salvarGuiche passando os parametros correspondentes do botão cmdSalvarGuiche
                if (oAtende.salvarGuiche(id, guiche, computador, tipoSenha_id,
                             ordem, podeAtenderOutros, filaDoGuiche, funcionario) == true)
                {

                    carregargrid();
                    cmdNova_Click(null, null);
                    lblMensagem.Text = "Salvo com sucesso";
                }
            }

        }
    }

This is my code for the save method that is in class clsAccess.cs:


        public bool salvarGuiche(int id, string guiche, string computador, int tipoSenha_id,
                                 int ordem, bool podeAtenderOutros, string filaDoGuiche, string funcionario)
        {
            try
            {
                if (id > 0)
                    oDB.SqlComando = " UPDATE tblAtendimentoGuiches SET (guiche, computador, tipoSenha_id, ordem, podeAtenderOutros, filaDoGuiche, funcionario) VALUES ( " +
                                ", '" + guiche + "', '"+computador+"', '" + tipoSenha_id + "', '" +ordem +"', '" +Convert.ToInt32(podeAtenderOutros) + "', '" +filaDoGuiche +
                                "', '" + funcionario+ "')";

                else
                    oDB.SqlComando = " INSERT INTO tblAtendimentoSenhasProtocolos ( guiche, computador, tipoSenha_id, ordem, podeAtenderOutros, filaDoGuiche, funcionario) VALUES ( " +
                                ", '" + guiche + "', '" + computador + "', '" + tipoSenha_id + "','" + ordem + "', '" + Convert.ToInt32(podeAtenderOutros) + "', '" + filaDoGuiche +
                                "','" + funcionario + "')";

                return oDB.ExecutarComando();


            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro : " + ex.Message);
                return false;
            }
        }

    
asked by anonymous 10.04.2017 / 20:04

1 answer

0

I've seen the SQL code has a "," plus and quotation marks in int fields, try to change the SQL of the code to this one, if it still does not work, see if all the fields that are with quotation marks are actually string.

"UPDATE tblAtendimentoGuiches SET (guiche, computador, tipoSenha_id, ordem, podeAtenderOutros, filaDoGuiche, funcionario) VALUES ('" + guiche + "', '"+computador+"', '" + tipoSenha_id + "', '" +ordem +"', "+Convert.ToInt32(podeAtenderOutros) + ", '" +filaDoGuiche +"', '" + funcionario+ "')";

"INSERT INTO tblAtendimentoSenhasProtocolos ( guiche, computador, tipoSenha_id, ordem, podeAtenderOutros, filaDoGuiche, funcionario) VALUES ('" + guiche + "', '" + computador + "', '" + tipoSenha_id + "','" + ordem + "', " + Convert.ToInt32(podeAtenderOutros) + ", '" + filaDoGuiche +"','" + funcionario + "')";
    
11.04.2017 / 18:31