当前位置: 首页 > news >正文

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显示不同的表

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

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


(这里是文档结束)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JAVA基础:Lock锁
  • imo云办公室 Imo_DownLoadUI.php 任意文件下载漏洞复现
  • Amesim-帮助文件翻译与总结-重要元件之firstorderlag
  • 小琳AI课堂:确保大语言模型安全的八大策略--从数据隐私到用户教育
  • Effective Java 学习笔记 方法签名设计
  • 使用python用递归实现汉诺塔算法
  • 三种springboot启动时加载方式
  • 蓝桥杯【物联网】零基础到国奖之路:十. OLED
  • 花朵识别系统Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
  • 基于无人机影像的可见光单木分割数据集-json格式
  • [Python]二、Python基础数据科学库(1)
  • 2024最新!!!iOS高级面试题,全!(二)
  • Golang | Leetcode Golang题解之第416题分割等和子集
  • Linux系统(Ubuntu)(下载篇)
  • C++11标准模板(STL)- 常用数学函数 - 计算e的给定幂 (ex)(std::exp, std::expf, std::expl)
  • django开发-定时任务的使用
  • ES10 特性的完整指南
  • FastReport在线报表设计器工作原理
  • Javascript编码规范
  • MySQL的数据类型
  • nginx 配置多 域名 + 多 https
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • sessionStorage和localStorage
  • Sublime Text 2/3 绑定Eclipse快捷键
  • vue数据传递--我有特殊的实现技巧
  • zookeeper系列(七)实战分布式命名服务
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 记一次用 NodeJs 实现模拟登录的思路
  • 近期前端发展计划
  • 每天10道Java面试题,跟我走,offer有!
  • 使用parted解决大于2T的磁盘分区
  • 问题之ssh中Host key verification failed的解决
  • 学习使用ExpressJS 4.0中的新Router
  • 移动端唤起键盘时取消position:fixed定位
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • - 转 Ext2.0 form使用实例
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • No resource identifier found for attribute,RxJava之zip操作符
  • 【云吞铺子】性能抖动剖析(二)
  • MPAndroidChart 教程:Y轴 YAxis
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • (06)金属布线——为半导体注入生命的连接
  • (C语言)字符分类函数
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (转)Mysql的优化设置
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)负载均衡,回话保持,cookie
  • ***原理与防范
  • ... 是什么 ?... 有什么用处?
  • .NET CORE 第一节 创建基本的 asp.net core