【个人机房重构】——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

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元