C# winforms DataGridView设置数据源自动显示表格

发布于:2024-10-12 ⋅ 阅读:(14) ⋅ 点赞:(0)

初级代码游戏的专栏介绍与文章目录-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显示不同的表

        前面的代码已经很明白了,按钮操作中先清除数据,然后加载一张表,显然是可以用同一个控件显示不同的表的数据的。

        很容易写出一个根据数据库架构列出所有表然后显示表数据的程序。


(这里是文档结束)