Array
(
)

Verificação se já existe no banco

Jair Souza
   - 15 dez 2014

Tenho este código para verificação se já existe no banco e uso no botão salvar e está funcionando quando são registros novos, mas se entro para alterar um registro, quando vou salvar faz a verificação e obviamente já existe... Se no modo de alteração não fizer a verificação, poderia-se cadastrar
algo que ainda não tem no banco e depois na alteração deixar igual (sabotagem)...
Alguem tem alguma idéia de como se resolve isto ?
#Código

private void BtnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\BDBiblioteca.mdb;Jet OLEDB:Database Password = 123");

                OleDbCommand comando = new OleDbCommand("SELECT Nome, CNPJ FROM Editora WHERE Nome = @nome OR CNPJ = @cnpj", conexao);

                comando.Parameters.AddWithValue("@nome", nomeTextBox.Text);
                comando.Parameters.AddWithValue("@cnpj", cNPJMaskedBox.Text);

                conexao.Open();

                OleDbDataReader reader = null;

                reader = comando.ExecuteReader(CommandBehavior.CloseConnection);

                if ((reader.HasRows) && (reader.Read()))
                {
                    if (nomeTextBox.Text == reader["nome"].ToString())
                    {
                        MessageBox.Show("Nome já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else if (cNPJMaskedBox.Text == reader["cnpj"].ToString())
                    {
                        MessageBox.Show("CNPJ já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                else
                {
                    this.Validate();
                    this.editoraBindingSource.EndEdit();
                    this.tableAdapterManager.UpdateAll(this.bDBibliotecaDataSet);
                    MessageBox.Show("Registro Salvo com Sucesso !", "Salvar", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi Possível Salvar !" + ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

Jothaz
   - 15 dez 2014

Posta a tela para facilitar a ajuda.

Existem nomes bem comuns e idênticos, então você não pode restringir que um CPF possa ser cadastrado para o mesmo nome mai de uma vez. Para diferenciar um do outro usa-se a data e hora de nascimento, nome da mãe, naturalidade e por ai vai.

Jair Souza
   - 15 dez 2014

Aqui está :

Clique na imagem para abrir em uma nova janela