DataGridView中间插入数据行

本文介绍了一个使用C#实现的DataTable与BindingSource结合的例子。通过创建一个包含id、FirstName和LastName三列的DataTable,并将其绑定到Windows Forms的DataGridView控件上,展示了如何在界面上动态显示数据。此外,还提供了在DataGridView当前位置插入新行的方法。
namespace WindowsFormsApp1
{
    public partial class Form2 : Form
    {
        private readonly BindingSource _bindingSource = 
            new BindingSource();

        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn()
                { ColumnName = "id", DataType = typeof(int)});
            dt.Columns.Add(new DataColumn()
                { ColumnName = "FirstName", DataType = typeof(string) });
            dt.Columns.Add(new DataColumn()
                { ColumnName = "LastName", DataType = typeof(string) });

            dt.Rows.Add(1, "Mary", "Jones");
            dt.Rows.Add(2, "Ane", "Smith");
            dt.Rows.Add(3, "Jim", "Adams");
            dt.Rows.Add(4, "Hank", "Lebow");

            _bindingSource.DataSource = dt;
            dataGridView1.DataSource = _bindingSource;

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (_bindingSource.Current == null) return;

            var dt = (DataTable) _bindingSource.DataSource;

            var nextId = dt.AsEnumerable()
                             .Select(dataRow => dataRow.Field<int>("Id"))
                             .Max() +1;

            var row = dt.NewRow();
            row["id"] = nextId;
            row["FirstName"] = "Karen";
            row["LastName"] = "Payne";

            dt.Rows.InsertAt(row, _bindingSource.Position);
        }
    }
}

转载于:https://www.cnblogs.com/jizhiqiliao/p/10775357.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值