在做用户注册,如果数据库有用户同名,就提示用户,如果用sql语句怎样写?
"insert into customer(cname,cpw,csex,cqq,cmail,caddress,chead,cinstroduce) values('"+cname+"','"+cpw+"','"+csex+"','"+cqq+"','"+cmail+"','"+caddress+"','"+chead+"','"+cinstroduce+");这句可以先在sql判断没有同名才插入吗?

解决方案 »

  1.   

    楼上的可以实现你的要求,但最好用SQL先判断是否有重名"select count(*) from customer where cname='"+cname+"'"如果大于0则表示存在
      

  2.   

    使用存储过程create proc InsertUsers
      @cname varchar(10),
      --...其他参数
    as
      IF exists (SELECT 1 FROM customer WHERE cname = @cname)
        return -1
      else
       insert into customer(cname,cpw,csex,cqq,cmail,caddress,chead,cinstroduce) values
       (@cname,@cpw,@csex,@cqq,@cmail,@caddress,@chead,@cinstroduce)
      

  3.   

    可以插入前先判断
    select count(*) from 用户表 where 用户名=注册的用户名
    if 返回值>0
      注册失败,该用户已存在
    else
      insert
      

  4.   

    用户名列设置唯一索引
    try
    {
      insert
    }
    catch(Exception e)
    {
      用户名忆存在
    }
    finally
    {
      关闭连接
    }
    这样有一个缺点
    如果是注册失败
    都是提示用户名已存在
    确保程序没问题
    这种方法还是可行的
      

  5.   


    IF EXISTS
    (
    SELECT Name FROM Admin WHERE Name=@Name
    )
    RETURN 1
    ELSE
    INSERT INTO Admin (Name) VALUES (@Name)