DataGridView 绑定数据、添加行、删除行、刷新表格

using System.Data;

namespace WinFormsApp22
{
public partial class Form1 : Form
{
DataTable dt;
public Form1()
{
InitializeComponent();

        //造一个内存表 datatable
        dt = new DataTable();
        //添加列
        dt.Columns.Add("ID");
        dt.Columns.Add("姓名");
        dt.Columns.Add("年龄");

        //往内存表加几行数据
        dt.Rows.Add(1, "张三", 18);
        dt.Rows.Add(2, "李四", 19);
        dt.Rows.Add(3, "王五", 20);

        //3 绑定到表格
        dataGridView1.DataSource = dt;

        AddNewRowToTable();



    }

    private void AddNewRowToTable()
    {
        //创建一个空行(只是造出来,还没放进表里)
        DataRow newRow = dt.NewRow();
        //把空行放进表里(真正加到 DataTable 里,显示到表格)
        newRow["ID"] = 4;
        newRow["姓名"] = "";
        newRow["年龄"] = DBNull.Value;
        dt.Rows.Add(newRow);


    }

    private void btnDelete_Clikck_Click(object sender, EventArgs e)
    {

        // 检查是否选中了行
        if (dataGridView1.SelectedRows.Count == 0)
        {

            MessageBox.Show("请先选中要删除的行");
            return;

        }

        //遍历选中的行
        foreach (DataGridViewRow selectedRow in dataGridView1.SelectedRows)
        {

            //跳过新建行 就是表格最后那行空白的新增行
            if (selectedRow.IsNewRow) continue;
            //拿到这一行在datagriview里面的索引
            int rowIndex = selectedRow.Index;
            //关键 从datatable删除对应索引行
            dt.Rows.RemoveAt(rowIndex);


        }

    }

    private void button1_Click(object sender, EventArgs e)
    {

        //普通刷新 重绘界面
        dataGridView1.Refresh();

        //方式2 重新绑定数据源 
        //重新加载datatable 再赋值一次
        dataGridView1.DataSource = null;
        dataGridView1.DataSource = dt;

    }
}

}

posted @ 2026-05-04 23:23  菜鸟的奋斗军  阅读(3)  评论(0)    收藏  举报