【个人机房重构】——DataGridView控件绑定数据 ㈡

2024-05-08 02:38

本文主要是介绍【个人机房重构】——DataGridView控件绑定数据 ㈡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    在上一篇文章中,说了一下使用DataGridView控件直接绑定数据源的做法,那样做虽然方便,但是有缺陷(详情请看上一篇文章)。现在,我将从使用实体类填充泛型集合,用泛型集合来传递数据的方法,来展示DataGridView如何显示数据的。


一、设置DataGridView控件


首先,插入DataGridView控件后,进行相应的设置:




注:设置时,4、5是特别需要注意的。数据DataPropertyName这里,必须要与实体的属性名相同。


设置成功:





二、编写代码


U层


'********************************************** 
' 文 件 名:frmCheckRecharge
' 命名空间:UI
' 内    容:
' 功    能:查询学生充值记录
' 文件关系:
' 作    者:杨晨光
' 小    组:
' 生成日期:2014/8/12 22:17:44
' 版 本 号:V1.0.0.0
' 修改日志:
' 版权说明:
'**********************************************Public Class frmCheckRechargePrivate Sub btnCheck_Click(sender As Object, e As EventArgs) Handles btnCheck.Click'卡号不为空的话,开始进行传值Dim EUser As New Entity.RechargeEntity    '实例化新的RechargeEntity,用来传递B层的实体Dim BUser As New BLL.CheckRechargeBLL     '实例化新的CheckRechargeBLL,传递参数Dim LUser As New List(Of Entity.RechargeEntity)   '实例化新的List泛型集合EUser.cardNo = VarType(txtCID.Text.Trim)    '将卡号赋值给实体层的EUser,VarType将字符串类型转换成integer类型LUser = BUser.Check(EUser)     '调用B层的Check方法'判断返回的泛型集合是否为空'不为空If IsNothing(LUser) = False Then'将泛型集合中数据,显示在DataGridView控件上DataGridView1.DataSource = LUserElsetxtCID.Text = ""     '清空输入卡号文本框txtCID.Focus()      '获得光标输入焦点End IfEnd Sub'自动显示行号Private Sub DataGridView1_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs)Trye.Graphics.DrawString((e.RowIndex + 1).ToString(),e.InheritedRowStyle.Font, New SolidBrush(Color.CadetBlue),e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + 5)CatchMsgBox("操作失败")End TryEnd Sub
End Class


B层


Public Class CheckRechargeBLLFunction Check(ByVal user As Entity.RechargeEntity) As List(Of Entity.RechargeEntity)  '返回值为泛型集合'先判断卡号是否为空,为空的话If user.cardNo.ToString.Trim = "" ThenMsgBox("卡号不能为空,请输入卡号!", MsgBoxStyle.Exclamation, "警告")Return NothingEnd If'卡号不为空,则进行赋值判断Dim LUser As List(Of Entity.RechargeEntity)Dim DUser As New DAL.CheckRechargeDALLUser = DUser.Query(user)    '将user值通过D层的Query方法,传到泛型集合LUser中'判断返回的泛型集合是否为空If IsNothing(LUser) = False Then     '不为空Return LUserElseMsgBox("没有此卡号的记录,请重新输入卡号", MsgBoxStyle.Exclamation, "警告")Return NothingEnd IfEnd Function
End Class


D层


Imports System.Data
Imports System.Data.SqlClient
Public Class CheckRechargeDALFunction Query(ByVal user As Entity.RechargeEntity) As List(Of Entity.RechargeEntity)'定义一个操作数据库的助手类Dim MySqlHelper As New SqlHelper'定义对数据库的操作语句Dim strSql As StringstrSql = "select * from T_Recharge where cardNo=@cardNo"'加入参数Dim paras As SqlParameter()paras = {New SqlParameter("@cardNo", user.cardNo)}'执行查询,并将查询的结果保存到dt里边Dim dt As DataTable'保存转换后的泛型集合Dim myList As List(Of Entity.RechargeEntity)'执行查询dt = MySqlHelper.ExecSelect(strSql, CommandType.Text, paras)'进行判断,dt中是否有记录If dt.Rows.Count > 0 Then    'dt中有记录'将dt转换为泛型集合myList = ConvertHelper.convertToList(Of Entity.RechargeEntity)(dt)Return myList      '返回myListElseReturn NothingEnd IfEnd Function
End Class

三、结果











这篇关于【个人机房重构】——DataGridView控件绑定数据 ㈡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/969077

相关文章

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于