Problema com SELECT Access

23/05/2014

0

Bom dia, não estou conseguindo acertar este SELECT em um BD Access :
Windows Form C#.

Assim ele só lê o login, usando OR :
OleDbCommand comando = new OleDbCommand("SELECT Nome, Login From Funcionario WHERE Nome = @nome Or Login = @login", conexao);



Assim tem de ser os dois, se não não considera, usando AND ;
OleDbCommand comando = new OleDbCommand("SELECT Nome, Login From Funcionario WHERE Nome = @nome AND Login = @login", conexao);



Assim dá erro dizendo que o operador está errado, usando | | ...
OleDbCommand comando = new OleDbCommand("SELECT Nome, Login From Funcionario WHERE Nome = @nome | | Login = @login", conexao);



Mas eu preciso que o SELECT pegue se o nome for igual OU o login for igual como fazer alguém sabe ?
Jair Souza

Jair Souza

Responder

Posts

23/05/2014

William Maximo

OleDbCommand comando = new OleDbCommand("SELECT Nome, Login From Funcionario WHERE Nome = @nome Or Login = @login", conexao);

a primeira opção esta correta, mas quando se usa o operação = voce tem que escrever o nome da mesma maneira que esta salvo no banco

experimente usar Like
SELECT Nome, Login From Funcionario WHERE Nome like @nome OR Login like @login
Responder

24/05/2014

Jair Souza

Não mudou nada com LIKE, e o curioso é que para o primeiro registro ele considera tanto o nome como o login e avisa se um OU outro já está cadastrado, mas do segundo registro em diante não...assim está o código se tiver mais uma dica agradeço muito, pois já estou a mais de dez dias lutando com esta parte do projeto...

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");

                OleDbCommand comando = new OleDbCommand("SELECT Nome, Login From Funcionario WHERE Nome LIKE @nome or Login LIKE @login", conexao);

                comando.Parameters.AddWithValue("@nome", nomeTextBox.Text);
                comando.Parameters.AddWithValue("@login", loginTextBox.Text);

                conexao.Open();

                OleDbDataReader reader = null;

                reader = comando.ExecuteReader(CommandBehavior.CloseConnection);
                {
                    if (reader.HasRows)
                    {
                        if (reader.Read())
                        {
                            if ((BtnAlterar.Checked == false))
                            {
                                MessageBox.Show("Nome ou Login já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                nomeTextBox.Focus();
                            }
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar