添加新记录的方法如下:
DataTable table=ds.Tables["test"];
DataRow row=table.NewRow();//创建新行
row["用户姓名"]=txt_Name.Text;
row["用户年龄"]=txt_Age.Text;
row["用户生日"]=Borndate.Text;
table.Rows.Add(row);用这种方法添加新的记录怎样获取新记录的编号?

解决方案 »

  1.   

    我试了两种方法,可都读不出来,下面是代码
    1.
    OleDbConnection conn = new OleDbConnection(_users.dataConnstr);
    OleDbCommand cmd = new OleDbCommand("SELECT MAX(用户编号) FROM consumer", conn);
    conn.Open();
    OleDbDataReader accessReader;
    accessReader=cmd.ExecuteReader();
    Id=accessReader["用户编号"].ToString();2
    OleDbConnection conn = new OleDbConnection(_users.dataConnstr);
    OleDbCommand cmd = new OleDbCommand("SELECT TOP 1 FROM consumer Order by 用户编号 DESC", conn);
    conn.Open();
    OleDbDataReader accessReader;
    accessReader=cmd.ExecuteReader();
    Id=accessReader["用户编号"].ToString();这两种方法都读不出来
      

  2.   

    楼主少加了一行accessReader=cmd.ExecuteReader();
    //加这一行
    if (accessReader.Read())
      Id=accessReader["用户编号"].ToString();
    else
      ID=....;
      

  3.   

    设置DataSet字段的自增长。
    比如
    datacolumn.AutoIncrement = true;//设置该列为自增长,
    datacolumn.AutoIncrementSeed = -1;//新增列的初始值。
    datacolumn.AutoIncrementStep = -1;//列的值自动递增的数值。默认为 1。
    这样你添加第一条新增数据的时候临时主键为-1,
    第二条为-2,
      

  4.   

    zhzuo(秋枫) 的这个例子我看过,可是不太明白,能否详细讲一下
      

  5.   

    DataTable中是无法获得,你必须从数据库中去查询
      

  6.   

    在Table裏面新建的編號,還是按照你的規則計算吧,如果自增長就找上一行的+1,最好別到數據庫去取,你還沒提交數據庫呢,如果連續增加三行,那不是要取三次?增加100行一起提交呢?
      

  7.   

    秋楓講的是在DataSet中的設置。起始值還是需要從數據庫中讀取。
      

  8.   

    to:suliang1984(嘎嘎,我就是菜菜) 
    错误应该是你的SQL语句有问题,应该改为:
    OleDbConnection conn = new OleDbConnection(_users.dataConnstr);
    OleDbCommand cmd = new OleDbCommand("SELECT MAX(用户编号) 用户编号 FROM consumer", conn);
    conn.Open();
    OleDbDataReader accessReader;
    accessReader=cmd.ExecuteReader();
    Id=accessReader["用户编号"].ToString();  //只有在SQL查询返回的字段有别名的情况下,才可以在DataReader中用别名访问
      

  9.   

    我遇到的问题很奇怪
    现在用的是hnhl(荒凉) 的方法,有时候取出来的是新添加的记录的id号,可有时候得到的是前一个的id号,有人遇到过这个问题嘛?
      

  10.   

    用存储过程提交数据,存储过程中参数定义一个Output参数。
      

  11.   

    如果程序没有错误的话,我想你是不是搞错了一个问题,用户编号应该是数据库帮你产生的自增列,而dataTable本身和数据库没有任何联系,只作为一个数据容器而已,你操纵dataTable而不操纵数据库,当然读不出用户编号,并且,你读不出任何数据,因为你根本没有insert