在Visual Studio代码里向数据库添加数据 ,能显示数据库里的一个 UserID 的数据, UserID 是个表示列,该怎么做?    急····

解决方案 »

  1.   

    就是 如何在插入一条记录时,同时取得这条记录的 UserID值 
    UserID是标识列。 
      我在一个类里自定了个方法连接数据库操作向数据库里增加数据, 再建个类调用这个方法, 怎么把这个UserID 的值取出来??
      

  2.   

    你既然是插入的数据那么userID 肯定也要插入的数据啊,
    除非userID有默认值或者自动生成等。如果是自动增长的ID那么直接在插入语句后 select @@identity 返回这个值到DS中。如果是其他类型的,都可以再插入的时候获得
      

  3.   

    如果UserID是自动增长的,那么insert into 。。 select @@identity
      

  4.   

    插入时把UserID的值返回出去。
      

  5.   

    楼上两个都对,在插入的时候把UserID返回去,你可以在插入完成以后,在查找你的表中最大的那个UserID,就是你刚刚添加的
      

  6.   

    http://topic.csdn.net/u/20110414/10/06526263-9e0d-491f-b963-7ae0afd1f7e4.html
    一个完整的例子。
      

  7.   

    能写详细点吗?    我写过 select @@identity ,但是调用这个方法就不知道怎么显示这个UserID离得值了 ,能写下嘛?
      

  8.   

    sql server  有自动增长这个属性
    或是  取最大的userid:  select max(userid)   from   usrinfo //结果+1   就是下一条的userid
    还得需要判断这个userid 是否存在  
    建议取第一种方法   设置userid 自动增长。oracle的  你就写一个自动增长的函数 就可以了。lz 你解释的不详细。
    up.....
      

  9.   


    数据库中好像有一个ExcuteScalar获取数据返回值的第一列,就能获取该值了
      

  10.   

    不是很明白你的问题,试着给你回答一下:
    如果是ORACLE数据库,先在数据库中建立对应的序列,在程序里直接取序列值作为UserID ,然后再入库,此时不需要再查询数据库,这样效率比较高。如果是其它数据库你也可以考虑类似实现。
    希望能对你有所帮助
      

  11.   

    我是要insert数据,数据库里有一个字段UserId ,是自动增长的,需要取出来, ,,
      

  12.   

    设id自增,插入一条 再获取最大的id返回
      

  13.   

    插入一条新数据后,如果id那列是自增的,select @@identity会自动返回这个新的id回来
      

  14.   

    你是用sql语句直接查询么
    insert xxxx.......
    对么
    如果是这样 只要在语句后 加上
    select @@identity
    然后执行这个语句
    就会获得你的插入的数据的 ID 
    返回即可
      

  15.   

    INSERT INTO 表名 (item_name,item_code) VALUES (@item_name,@item_code)
    SELECT @@IDENTITY
      

  16.   

    insert table () values ( ) select @@identity
      

  17.   


    不是 ,是从Visual  studio 里
      

  18.   

    这是我的代码,望指教:  /// <summary>
            /// 增加用户数据
            /// </summary>
            /// <param name="UserName"></param>
            /// <param name="pwd"></param>
            /// <param name="Email"></param>
            /// <returns></returns>
            public int AddMessage(string UserName,string pwd , string Email,int level,double time) 
            {
             string Data = "server=.;DataBase=QQ;Integrated Security=SSPI";
                  SqlConnection conn = new SqlConnection(Data);
                  int k;
                 
                try
                {
                    
                    conn.Open();                StringBuilder bu = new StringBuilder();
                    bu.AppendFormat(" insert into UserInfo values('{0}','{1}','{2}','{3}','{4}');select @@identity", UserName, pwd, Email, level, time);
                    SqlCommand comm = new SqlCommand(bu.ToString(),conn);                 k = Convert.ToInt32(comm.ExecuteScalar());
                }
                catch (Exception e)
                {
                    Console.WriteLine("出现异常!" + e.Message);
                    k= -1;
                            }
                    
                finally
                {
                    conn.Close();
                    
                }
                return k;
               
            }
      

  19.   

    问题解决了,谢谢各位!以为是insert```和select @@identity一起执行,我被误导了 ,错了 ,还是现在想想学编程思路很重要,没思路,没代码!  明天结贴啊!