掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

C#DataGridView控件获取选中行数据或处理选中行的几种方法详解

在C# Windows Forms应用程序开发中,DataGridView是一个非常常用的数据展示控件,它能够以表格形式显示和编辑数据。为了提高开发效率,通常会将DataGridView与数据源进行绑定,从而实现动态数据的展示与更新。本文将详细介绍C#中DataGridView数据绑定的几种常见实现方式,包括直接绑定、使用BindingSource组件、数据集绑定以及自定义对象绑定,并提供相应的基本步骤和示例代码,帮助开发者更好地理解和应用这些方法。

一、直接绑定数据源

最简单也是最直接的方式是将DataGridView直接绑定到一个数据源,如DataTable或List<T>等集合类型。

  1. 基本步骤:

创建数据源,例如DataTable或List<T>。

将DataGridView的DataSource属性设置为该数据源。

可选地设置列标题、样式等。

  1. 示例代码:

// 创建一个 DataTable
DataTable table = new DataTable("Students");
table.Columns.Add("ID", typeof(int));
table.Columns.Add("Name", typeof(string));
table.Rows.Add(1, "张三");
table.Rows.Add(2, "李四");
// 绑定到 DataGridView
dataGridView1.DataSource = table;
  1. 优点:

实现简单,适合快速展示静态数据。

  1. 缺点:

不便于对数据进行更复杂的操作,如排序、筛选等。

二、使用 BindingSource 组件绑定

BindingSource是Windows Forms中用于数据绑定的重要组件,它可以作为DataGridView和数据源之间的中间层,提供更灵活的数据操作能力。

  1. 基本步骤:

在窗体设计器中添加一个BindingSource组件。

设置BindingSource的DataSource属性为数据源。

将DataGridView的DataSource设置为该BindingSource。

  1. 示例代码:

// 创建数据源
List<Student> students = new List<Student>
{
    new Student { ID = 1, Name = "张三" },
    new Student { ID = 2, Name = "李四" }
};
// 使用 BindingSource 绑定
bindingSource1.DataSource = students;
dataGridView1.DataSource = bindingSource1;
  1. 优点:

支持数据的增删改查操作,便于后续扩展。

  1. 缺点:

需要额外添加组件,对于简单场景略显复杂。

三、数据集绑定(DataSet/DataTable)

DataSet是ADO.NET中用于存储和操作关系型数据的核心类之一,常用于从数据库读取数据并绑定到DataGridView。

  1. 基本步骤:

使用DataAdapter从数据库加载数据到DataSet或DataTable。

将DataGridView的DataSource设置为该数据集或表。

  1. 示例代码:

// 假设已有一个连接字符串和SqlCommand
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Students", connectionString);
DataTable table = new DataTable();
adapter.Fill(table);
// 绑定到 DataGridView
dataGridView1.DataSource = table;
  1. 优点:

适用于从数据库读取数据并展示,支持复杂查询和多表关联。

  1. 缺点:

对于简单的本地数据来说,可能显得过于繁重。

四、绑定自定义对象列表

在实际开发中,我们经常需要将自定义的对象(如实体类)绑定到DataGridView,以便展示业务数据。

  1. 基本步骤:

定义一个包含属性的类(如Student)。

创建该类的实例列表。

将DataGridView的DataSource设置为该列表。

  1. 示例代码:

public class Student
{
    public int ID { get; set; }
    public string Name { get; set; }
}
List<Student> students = new List<Student>
{
    new Student { ID = 1, Name = "张三" },
    new Student { ID = 2, Name = "李四" }
};
dataGridView1.DataSource = students;
  1. 优点:

灵活且易于维护,适合业务逻辑复杂的应用。

  1. 缺点:

默认情况下,DataGridView不会自动识别属性名,可能需要手动配置列或使用DataPropertyName。

五、动态生成列并绑定数据

在某些情况下,可能希望根据数据动态生成DataGridView的列,而不是依赖默认的列生成机制。

  1. 基本步骤:

清除DataGridView的现有列。

根据数据源的字段动态创建列。

设置列的DataPropertyName以绑定数据。

  1. 示例代码:

dataGridView1.AutoGenerateColumns = false;
dataGridView1.Columns.Clear();
foreach (var property in typeof(Student).GetProperties())
{
    DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
    column.DataPropertyName = property.Name;
    column.HeaderText = property.Name;
    dataGridView1.Columns.Add(column);
}
dataGridView1.DataSource = students;
  1. 优点:

提供更高的控制度,适合定制化展示需求。

  1. 缺点:

代码较为繁琐,不适合频繁变动的结构。

C#DataGridView控件获取选中行数据或处理选中行的几种方法详解

在C# Windows Forms开发中,DataGridView的数据绑定是一项基础但关键的功能。通过不同的绑定方式,可以灵活应对各种数据展示需求。无论是直接绑定、使用BindingSource、数据集绑定还是自定义对象绑定,都有其适用的场景和特点。掌握这些方法,不仅有助于提升开发效率,还能增强程序的可维护性和扩展性。开发者应根据具体需求选择合适的数据绑定方式,以构建功能完善、用户体验良好的应用程序。

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

  • IPv6地址

    根据查询的IPvb地址,查询该IPv6所属的区域,城市级查询。

    根据查询的IPvb地址,查询该IPv6所属的区域,城市级查询。

  • 2026美加墨世界杯

    2026美加墨世界杯小组赛、1/16决赛、1/8决赛、1/4决赛、半决赛、季军赛、决赛赛程及积分榜

    2026美加墨世界杯小组赛、1/16决赛、1/8决赛、1/4决赛、半决赛、季军赛、决赛赛程及积分榜

  • AI语音合成TTS API

    提供多种拟人音色,支持多语言及方言,并可在同一音色下输出多语言内容。系统可自适应语气,流畅处理复杂文本。

    提供多种拟人音色,支持多语言及方言,并可在同一音色下输出多语言内容。系统可自适应语气,流畅处理复杂文本。

  • Google Gemini Image API

    Nano Banana(gemini-2.5-flash-image 和 gemini-3-pro-image-preview图像模型)是图像生成与编辑的最佳选择,可集成 Nano Banana API,实现高速预览。

    Nano Banana(gemini-2.5-flash-image 和 gemini-3-pro-image-preview图像模型)是图像生成与编辑的最佳选择,可集成 Nano Banana API,实现高速预览。

  • AI视频创作

    支持通过自然语言文本智能生成高质量短视频。用户只需输入一段描述性文字,即可自动合成画面连贯、风格鲜明、配乐匹配的定制化视频内容。适用于短视频创作、广告预演、社交内容生成、游戏素材制作等场景,为开发者与创作者提供高效、灵活、富有想象力的视频生产新范式。

    支持通过自然语言文本智能生成高质量短视频。用户只需输入一段描述性文字,即可自动合成画面连贯、风格鲜明、配乐匹配的定制化视频内容。适用于短视频创作、广告预演、社交内容生成、游戏素材制作等场景,为开发者与创作者提供高效、灵活、富有想象力的视频生产新范式。

0512-88869195
客服微信二维码

微信扫码,咨询客服

数 据 驱 动 未 来
Data Drives The Future