C# winforms DataGridView设置数据源自动显示表格
初级代码游戏的专栏介绍与文章目录-CSDN博客
我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。
这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。
源码指引:github源码指引_初级代码游戏的博客-CSDN博客
前面我们已经用Entity Framework Core自动生了访问数据库的代码,为了显示数据,我们只需要使用一个DataGridView并把DataSource属性设置为数据表对象即可。
目录
一、效果
二、添加DataGridView控件
编辑
三、设置属性
四、设置DataSource关联到数据表
五、同一个DataListView显示不同的表
一、效果
自动显示为带列头的表格(宽度我设置了横向自适应,会自动扩展到整个控件的宽度)
二、添加DataGridView控件
三、设置属性
设置属性,横向最好自动占满控件,不然不好看:
四、设置DataSource关联到数据表
一般就先写个按钮呗,按钮代码里面设置控件的数据源:
public TablesContext db;//EntityFrameworkCore生成的上下文对象
public BindingList<GwKey> dsTable1 { get; set; } = [];//一张表
private void button_table1_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = null;//清除数据源
dataGridView1.Columns.Clear();//清除所有列
db.Table1.Load();//手动读取数据
dsGwKey = db.Table1.Local.ToBindingList();//由于内部限制,不能直接使用EntityFrameworkCore生成的对象,不信你可以试一下,运行时会触发异常并给出解决方案,也就是这一句
dataGridView1.DataSource = dsTable1;//设置数据源,数据就自动显示出来了
}
本来只是设置个数据源啊,一句话就可以了,但是因为不允许直接使用EntityFrameworkCore生成的对象,所以必须转换为一个纯粹的List<>或BindingList<>对象,这两者的区别是BindingList会在数据更改时触发事件,而List不会。
五、同一个DataListView显示不同的表
前面的代码已经很明白了,按钮操作中先清除数据,然后加载一张表,显然是可以用同一个控件显示不同的表的数据的。
很容易写出一个根据数据库架构列出所有表然后显示表数据的程序。
(这里是文档结束)