20.4 显示数据库数据

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的

20.4.1 设计时进行简单绑定

【例 20.22 【项目:code20-022】设计时关联数据库。

设计时设置DataGridView的DataSource属性,请参考第19.7.4.1节。

注意:【数据源配置向导】|【选择你的数据连接】页面已经将之前使用过的数据连接已经列出,可以直接选择:

图20-27 使用过的数据连接

在【数据源配置向导】|【选择数据库对象】页面,勾选"表"下面的"订单明细",然后点击"完成"按钮。

图20-28 勾选"订单明细"

此时DataGridView.DataSource已经设置为订单明细BindingSource。而且设计窗体上的DataGridView控件里显示了"订单明细"的字段:

图20-29 设计界面直接显示数据表的字段

直接运行程序,可以看到显示了"订单明细"的所有数据:

图20-30 订单明细数据

整个过程简单,基本不用键盘输入,快捷方便地将数据显示出来。

**注意:**由于连接字符串使用的是64位,本例运行时的目标平台请使用X64,后面例子同。

20.4.2 使用数据源

【例 20.23 【项目:code20-023】使用数据源关联数据库。

设计时使用数据源,请参考第19.7.4.2节。

在【数据源配置向导】|【将连接字符串保存到应用程序配置文件中】页面,直接点击"完成"按钮。如果此时"完成"按钮是灰色,那么继续点击"下一步", 在【数据源配置向导】|【选择数据库对象】页面不勾选任何内容,点击完成。在弹出的窗口点击"是"按钮:

图20-31 这里暂时需要空的数据集

【数据源】窗口多了"NorthwindDataSet":

图20-32 【数据源】窗口

而【解决方案资源管理器】窗口内多了"NorthwindDataSet.xsd"文件:

图20-33 【解决方案资源管理器】窗口

双击"NorthwindDataSet.xsd",此时会打开"数据集设计器",而【工具箱】窗口也会只剩下【数据集】这一选项卡:

图20-34 【工具箱】窗口

双击【数据集】选项卡中的"TableAdapter",此时弹出【TableAdapter配置向导】,使用默认连接(MySettings这个),点击"下一步"按钮:

图20-35 【TableAdapter配置向导】窗口

在【TableAdapter配置向导】|【选择命令类型】页面,默认选中"使用SQL语句",点击"下一步"按钮:

图20-36 【选择命令类型】页面

在【TableAdapter配置向导】|【输入SQL语句】页面,输入要使用的SQL语句,或者通过"查询生成器"来生成SQL语句。继续点击"下一步"按钮:

图20-37 输入要使用的SQL语句

在【TableAdapter配置向导】|【选择要生成的方法】页面,这一步骤的选项和上一步骤的SQL语句相关联。如果是不包含全部主键的部分查询或者交叉查询,"创建方法以将更新直接发送到数据库"这一项将会是灰色的。保持默认,继续点击"下一步"按钮:

图20-38 【选择要生成的方法】页面

在【TableAdapter配置向导】|【向导结果】页面可以查看配置情况,点击"完成"按钮:

图20-39 【向导结果】页面

此时【数据集设计器】窗口中会显示"订单明细DataTable",里面也包括了"订单明细TabelAdapter":

图20-40 订单明细DataTable

此时,【数据源】窗口,"NorthwindDataSet"下面也多了"订单明细":

图20-41 【数据源】窗口

回到"Form1.vb【设计】"窗口,此时会看到【数据源】窗口下的"订单明细"旁边多了下拉箭头,点击下拉箭头可以看到有【DataGridView】、【详细信息】、【无】三项,保持选择【DataGridView】:

图20-42 选择某项会影响在窗体上的显示

在"订单明细"上按下鼠标左键,将它拖放到窗体上,此时窗体上多了"订单明细BindingNavigator"和"订单明细DataGridView",分别对应BindingNavigator控件和DataGridView控件:

图20-43 "订单明细"拖放到窗体的显示

如果是不包含全部主键的部分查询或者交叉查询,在【TableAdapter配置向导】|【选择要生成的方法】页面中,"创建方法以将更新直接发送到数据库"这一项将会是灰色的,那么拖放后在窗体上的显示和图20-42差不多,但是"保存"按钮那里是灰色的:

图20-44 "保存"灰色

运行程序,就可以在DataGridView控件中显示查询的数据:

图20-45 显 示查询数据

此时,DataGridView控件默认是可以编辑的,添加、修改或删除后,按下"保存"按钮就可以将变化后的数据保存下来。

如果要修改查询的SQL语句,可以进入"数据集设计器"窗口,单击"订单明细DataTable"下面"订单明细TabelAdapter"的"Fill,GetData()",右侧【属性】窗口内,点击"CommandText"后面的按钮:

图20-46 "Fill,GetData()"属性

此时弹出【查询生成器】窗口,在里面可以添加查询表、选择显示字段、输入SQL语句、显示查询结果等:

图20-47 【查询生成器】窗口

修改好SQL语句后,按下"确定"按钮完成修改。

同第20.4.2节,整个过程简单,基本不用键盘输入,快捷方便地将数据显示出来,适合快速开发显示数据的项目。

顺带一提的是,如果在【数据源】窗口,将"订单明细"选择为【详细信息】,那么拖放到窗体上,将不会显示DataGridView,而显示为单条记录的内容:

图20-48 【详细信息】时拖放到窗体上的显示

而且【数据源】窗口,"订单明细"下面的每个字段都可以设置显示类型:

图20-49 为单个字段选择显示方式

而且每个字段都可以单独拖放到窗体上显示:

图20-50 单独字段显示

20.4.3 分页显示

在第19.5.3.6节学习了如何在DataGridView中分页显示数据,本节继续学习另外一种方法:

相关推荐
WeiQ_2 小时前
解决phpstudy 8.x软件中php8.2.9没有redis扩展的问题
数据库·redis·缓存
DashVector6 小时前
向量检索服务 DashVector产品计费
数据库·数据仓库·人工智能·算法·向量检索
KYGALYX7 小时前
在Linux中备份msyql数据库和表的详细操作
linux·运维·数据库
檀越剑指大厂7 小时前
金仓KReplay:定义数据库平滑迁移新标准
数据库
努力成为一个程序猿.8 小时前
【Flink】FlinkSQL-动态表和持续查询概念
大数据·数据库·flink
毕设十刻8 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
就是有点傻9 小时前
使用PaddleOCRSharp大模型精选文字识别
c#
LeonDL1689 小时前
【通用视觉框架】基于C#+Winform+OpencvSharp开发的视觉框架软件,全套源码,开箱即用
人工智能·c#·winform·opencvsharp·机器视觉软件框架·通用视觉框架·机器视觉框架
liliangcsdn9 小时前
如何利用约束提示优化LLM在问题转sql的一致性
数据库·sql
Java爱好狂.10 小时前
分布式ID|从源码角度深度解析美团Leaf双Buffer优化方案
java·数据库·分布式·分布式id·es·java面试·java程序员