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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar