解决方案 »

  1.   


    insert xxoo select newid().....
    或者自增identity(1,1)也不会重复...
      

  2.   

    如果生成都是僵尸号....那直接把注册的用户名用GUID表示出来就得了否则就随机字母+数字组合,然后每添加一条前做查询该字母+数字组合是否已经注册
      

  3.   

    比如账号名字段:LogName
    密码:Password
    表名:Userpublic string GetGuid()
            {
                System.Guid guid = new Guid();
                guid = Guid.NewGuid();
                return guid.ToString().ToUpper();
            }for(int i = 1;i<=100000;i++)
    {
        var model = new User();
        User.LogName = GetGuid();
        User.Password = "这里可以用GUID,也可以全部用一样的,如果要做加密也可以加密";
        DC.User.InsertOnSubmit(model);
    }
    DC.SubmitChanges();这里直接用linq to sql了,如果用EF,ADO自行修改
      

  4.   

    取GUID是个办法
    不过如果用户名有长度限制,恐怕还是会有问题
    1.放不下
    2.有重复
      

  5.   

    select count(*) from table where 账号='账号'
    去数据库里查一下看是否存在
      

  6.   


    假设账号已经OK了,不管你随机字母+数字还是GUID
    string logName;  //这个是生成的账号
    //生成账号,省略
    var result = DC.User.Where(m=>m.LogName == logName;
    if(result.Count()=0)
    {
        //添加账号
    }
      

  7.   

    上面少了个)
    result.Count()==0   少了个等号....
      

  8.   

    insert插入,用select count(*)来查找是否有重复
      

  9.   

    .net 没有try catch ?
    c++builder 里我是这么做,写好生成规则,插入语句用 try catch 包起来,插入成功 count + 1,否则 continue,直到插完.
    前提是,表里有主键 用户名,重复的插入会报错.如果用户名没主键,select 查询,判断是否存在再插入会非常慢,10万条无法忍受,除非你是维护阶段干这种事请.还可以这样,select * 全部查询出来,将用户名保存在字典里。
    然后还是一个循环,不停生成,但是不需要select 查询名字是否存在,而是查字典看名字是否存在,这样能快的多。
      

  10.   

    A0...0000001~A0...0100000
    中间要有几个0可以自己查已有记录后再判断一下。前面的A也可以替换成其他字母或数字。