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  菜鸟的奋斗军  阅读(33)  评论(0)    收藏  举报