添加记录后,如何将添加的记录变成当前的记录?这样好在窗口上的textbox上填内容,然后保存。textbox已经做好了绑定。但是就是无法使用bingdingmanager.position 将记录移动到新添加的记录位置上。应该怎么做呢?

解决方案 »

  1.   

    就是用Position
    或者用dataGrid1.CurrentIndex
      

  2.   

    dataGrid1.Select(dataGrid1.CurrentIndex);//选中状态
    bingdingmanager.position=dataGrid1.CurrentIndex;
      

  3.   

    没有使用datagrid,我用bingdingmanager.position=bingdingmanager.count -1 时,这条赋值语句不能成功,虽然 count的值已经在addrow()方法后已经增加了,例如,使用addrow()之前 count值为14,使用addrow()后, count的值就已经变成了15了,当使用 bingdingmanager.position=15 -1时,这条语句不能正确赋值。但也不会报错。就是说无法将记录移动到当前新增加的位置,怎么办呢?改天我把代码贴出来让大家看看。
      

  4.   

    我把相关代码贴出来,并附带有调试时的相关值,大家帮忙分析一下
    相关代码如下:
    private BindingManagerBase Bm;private void form1_Load(object sender, System.EventArgs e)
    {
         ......
         this.label2.DataBindings.Add("Text",this.ds.Tables[0],"编号");
         this.textBox1.DataBindings.Add("Text",this.ds.Tables[0],"名称");
         this.comboBox1.DataBindings.Add("Text",this.ds.Tables[0],"种类");
         ......
         Bm=this.BindingContext[ds.Tables[0]];
    }
    private void button1_Click(object sender, System.EventArgs e)
    {
    try
    {
       int x;
       x=Bm.Count ;              //调试跟踪时 x=10
       DataRow dr=this.ds.Tables[0].NewRow();
       dr["编号"]="aaaa";        //主键,随便赋个值
       ds.Tables[0].Rows.Add(dr);
       x=Bm.Count ;              //调试跟踪时 x=11
                Bm.Position=2;
       Bm.Position= x - 1 ;//赋值没有成功,但不报错,执行完后position 仍然为2  
    }
    catch(Exception e1)
    {
    MessageBox.Show(e1.Message.ToString());
    }
    }就是说,我无法将指针移动到当前添加的记录上,那么我该如何编辑当前记录呀?
    另外,即使我移动Bm.Position=Bm.Count-1,也未必就是当前添加的那条记录,那该怎么办呢?
      

  5.   

    比较笨的办法,考虑你的数据在不断更新,一种就是将当前的记录内容缓冲在你本地DATASET中,或不就在记录体中有一个pID,记住这个pID,然后去读这条记录.有点笨,不要见笑
      

  6.   

    要想新增
    在绑定时
    用Me.BindingContext(dataset1,"table1").AddNew()
    提交时
    添加Me.BindingContext(dataset1,"table1").EndCurrentEdit()
      

  7.   

    exing(铱星) ,我是这样做的呀,但是在Me.BindingContext(dataset1,"table1").AddNew()后,输入框textbox的值没变,没有清空啊。使用 position也无法将当前记录移动到新增加的位置。郁闷了很多天了