C# 数据绑定示例:DataGridview与SqlDataReader

需积分: 10 13 下载量 70 浏览量 更新于2024-12-02 收藏 1KB TXT 举报
"本文主要介绍了如何在C#中使用`DataGridView`控件进行数据绑定,通过`SqlConnection`连接数据库并从SQL查询中获取数据,然后将数据源绑定到`BindingSource`,最后将`BindingSource`或直接将`DataReader`绑定到`DataGridView`。示例代码展示了两种不同的数据绑定方式,一种是直接使用`SqlDataReader`,另一种是使用`DataSet`和`SqlDataAdapter`。" 在.NET Framework中,`DataGridView`控件是一个常用的数据展示组件,它可以用来显示和编辑表格形式的数据。在C#编程中,我们经常需要从数据库获取数据并将其绑定到`DataGridView`以展示。下面将详细讲解这个过程。 首先,创建一个`SqlConnection`实例,用于连接数据库。在给定的代码中,数据库连接字符串是`@"server=.;database=gr;user id=sa;pwd="`,这表示本地服务器上的名为`gr`的数据库,使用`sa`用户身份验证,并提供密码。 接着,创建一个`SqlCommand`对象来执行SQL查询,这里查询的是`T1`表中的所有列。使用`ExecuteReader`方法执行查询,返回一个`SqlDataReader`对象,它按需读取数据,适合于流式处理大量数据。 然后,检查`SqlDataReader`是否读取到数据(即`sdr.Read()`返回`true`),如果读取到了数据,可以将`SqlDataReader`设置为`BindingSource`的`DataSource`,然后将`BindingSource`设置为`DataGridView`的`DataSource`。这样做是因为`BindingSource`可以作为数据源和控件之间的中介,提供数据过滤、排序和导航等附加功能。 另外,代码中还展示了使用`DataSet`和`SqlDataAdapter`的方式进行数据绑定。`SqlDataAdapter`用于填充`DataSet`,`SqlCommandBuilder`则用于生成更新、插入和删除命令。在填充`DataSet`后,将`DataSet`中的第一个表(假设是表`t1`)设置为`dataGridView1`的`DataSource`。此外,`dataGridView1.DataSource = ds.Tables[0].DefaultView;`则是另一种绑定数据的方式,`DefaultView`是`DataTable`的一个属性,它提供了一个可以对数据进行排序和筛选的视图。 总结来说,这段代码演示了两种`DataGridView`数据绑定方法:直接使用`SqlDataReader`和使用`DataSet`和`SqlDataAdapter`。这两种方法都能有效地将数据库中的数据呈现到用户界面中。在实际开发中,选择哪种方法取决于项目需求,如数据量大小、是否需要缓存数据以及是否需要支持复杂的操作(如排序、过滤)。