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;
}
}
}

浙公网安备 33010602011771号