本帖最后由 u010312979 于 2013-09-14 16:34:12 编辑

解决方案 »

  1.   

    我从来不使用DataTable、DataSet,我都是使用强类型的对象。随便写一下,肯定有更好更简单的写法:var nt = dt.Clone();
    dt.Rows.OfType<DataRow>()
        .Skip(pageSize * ( pageNum-1) )
        .Take(pageSize )
        .ToList()
        .ForEach(r => nt.Rows.Add(r));
      

  2.   

    这方法不行啊!
                DataTable dt = (DataTable)dataGridView1.DataSource;
                var nt = dt.Clone();
                dt.Rows.OfType<DataRow>()
                    .Skip(3 * (count - 1))
                    .Take(3)
                    .ToList()
                    .ForEach(r => nt.Rows.Add(r));
                dataGridView1.DataSource = nt;提示该行已经属于另一张表,是不是那个r是只读的就无法添加到另外一张表?
      

  3.   

    using System.Data;
    using System.Linq;
    using System.Windows.Forms;namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();            var dg = new DataGridView();
                dg.Dock = DockStyle.Fill;
                Controls.Add(dg);            var dt = new DataTable {Columns = {new DataColumn("c1"), new DataColumn("c2")}};
                dt.Rows.Add(1, 2);
                dt.Rows.Add(3, 4);
                dt.Rows.Add(5, 6);            dg.DataSource = dt.AsEnumerable().Skip(1).CopyToDataTable();
            }
        }
    }