Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabriel Luz

[Resolvido] condição para unique...

Recommended Posts

boa tarde...

fiz um formulario para cadastro de usuarios usando o linq to sql... criei uma unique na minha tabela do sql para que os usuarios não cadsatrem nomes de usuario iguais... mas estou tentando criar uma condição para que quando o nome de usuario ja exsistir na minha tabela apareça a mensagem "Nome de usuario ja cadastrado"...

fiz da seguinte forma:

            if (txtUsuario != null)
            {
                var user = from u in db.Users
                           where u.Username == (db.Users.ToString())
                           select u;
                if (user != txtUsuario)
                {
                    db.Users.InsertOnSubmit(objUser);
                    lblResultado.Text = "Usuario cadastrado com sucesso";
                }
                else
                {
                    lblResultado.Text = "Nome de usuario ja esta em uso";
                }
            }
            db.SubmitChanges();

só que parece que a condição não existe, ela cadastra os usuarios e da a mensagem... usuario cadastrado com sucesso, ai quando eu ponho um que ja existe ele da uma mensagem de erro do sql "Cannot insert duplicate key row in object 'dbo.User' with unique index 'IX_User'. The statement has been terminated. "

Alguem consegue me dar uma mão?

 

grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua condição está errada:

if (txtUsuario.Text != null)
            {
                var user = (from u in db.Users
                       	where u.Username == txtUsuario.Text
                       	select u).SingleOrDefault();
                if (user == null)
                {
                    db.Users.Insertonsubmit(objUser);
                    lblResultado.Text = "Usuario cadastrado com sucesso";
                }
                else
                {
                    lblResultado.Text = "Nome de usuario ja esta em uso";
                }
            }
            db.SubmitChanges();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia...

alterei os dados que você falou...

agora aparece "Nome de usuario ja esta em uso" para qualquer nome de usuario que eu coloco...

 

Edit: Opa, tinhs esquecido o SingleOrDefault... agora funcionou!!

vlw Ivan :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.