none
怎样在当前行前插入一条记录? RRS feed

答案

  • 你可以构造一行,所有字段都是默认值,然后使用Insert方法插入就可以了,这样效果是一样的!
    周雪峰
    • 已标记为答案 SnakeWu 2010年3月4日 6:28
    2010年3月3日 9:03
    版主
  • 暂时只能这么做了, 还要自己去构造一个空行, 为什么不能象addnew()一样简单. 哎........
    • 已标记为答案 SnakeWu 2010年3月4日 6:28
    2010年3月4日 6:27

全部回复

  • 你好!

    1 在数据源中增加排序字段,比如字段 Order 类型为 int 。
    2 设置 BindingSource 的 Sort 属性为 Order 。
    3 在你新增行的时候通过指定 Order 的值来确定新增行出现的位置。

    知识改变命运,奋斗成就人生!
    2010年3月1日 11:49
    版主
  • 你好!
         你可以使用BindingSource的Insert方法来实现插入!
    周雪峰
    2010年3月1日 12:03
    版主
  • 我想实现addnew()方法的效果, 即在GridView的当前行之前插入一个空行,  insert()方法能做到吗? insert()方法好象要传一个行对象过去才行?

    2010年3月2日 2:48
  • 你好!

    我按我的方式写了一个完整的示例,请看:


    知识改变命运,奋斗成就人生!
    2010年3月2日 5:03
    版主
  • 你可以先ADD一个row给列赋值了再insert
    2010年3月2日 7:52
  • 这不是个很好的解决方案, 我现在就想实现bindingSource的addnew()方法的功能, 只是不是追加到记录集的末尾, 而是当前位置之前.(这个当前位置是我在GridView中点击的行).
    2010年3月3日 1:18
  • 不是!

    add 方法是追加,即添加集合的未尾,所以只能添加到未尾。

    你要添加到指定位置,除了用我上面的方式,还可以使用 BindingSource 的 Insert 方法,如果数据源是 List<T> 也可以使用 List<T> 的 Insert 方法,如果数据源是 DataTable 也可以使用 dt.Rows.InsertAt 方法。

    知识改变命运,奋斗成就人生!
    2010年3月3日 5:14
    版主
  • 你的GrideView没有重新绑定数据吧.  
      在执行完AddNew()方法后,进行重新绑定GrideView试试看.
    咯咯
    2010年3月3日 5:59
  • insert()能不能不传对象? 而直接插入一个空行???  就这么点要求.
    2010年3月3日 8:17
  • 你可以构造一行,所有字段都是默认值,然后使用Insert方法插入就可以了,这样效果是一样的!
    周雪峰
    • 已标记为答案 SnakeWu 2010年3月4日 6:28
    2010年3月3日 9:03
    版主
  • 暂时只能这么做了, 还要自己去构造一个空行, 为什么不能象addnew()一样简单. 哎........
    • 已标记为答案 SnakeWu 2010年3月4日 6:28
    2010年3月4日 6:27
  • 是不是这样?

            Dim objRow As Object
            objRow = BindingSource.AddNew()
            BindingSource.Insert(index, objRow)
            TableAdapter.Update(DbDataSet.macro)

    可是它是报错如下:

            不能将外部对象插入此列表

    这样的问题怎么解决?

    2010年3月26日 3:07
  • 是不是这样?

            Dim objRow As Object
            objRow = BindingSource.AddNew()
            BindingSource.Insert(index, objRow)
            TableAdapter.Update(DbDataSet.macro)

    可是它是报错如下:

            不能将外部对象插入此列表

    这样的问题怎么解决?

    2010年3月26日 3:08