Winform开发中如何将数据库字段绑定到ComboBox控件
最近开始自己动手写一个财务分析软件,由于自己也是刚学.Net不久,所以自己写的的时候遇到了很多问题,希望通过博客把一些印象深刻的问题记录下来。
Winform开发中如何将数据库字段绑定到ComboBox控件
1.问题引入
在开发中用到了ComboBox控件,也就是实现下拉选择功能的控件。但是选项的 数据并不是固定的,而是要根据数据库中的某一列进行动态的调整。
2.解决思路
这里我大概考虑了两种情况,一种是下拉列表的选择项是项目中的实体类某一属性,或者项目其他要用到该属性对应的数据库主键。
这种情况主要是把实体对象通过SqlDataReader方法读取并封装到集合中,然后再绑定数据。
而我这里的情况是只需要显示对应的属性就好,使用的是SqlDataAdapter方法读取数据 ,然后在控件所在窗体初始化的时候把数据绑定。
3.参考代码
第一种情况:
SQLHelper类中的代码:
public static SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
conn.Close();
//将错误信息写入日志... throw ex;
}
}
封装到集合中:
public List<StudentClass> GetAllClasses()
{
string sql = "select ClassName,ClassId from StudentClass";
SqlDataReader objReader = SQLHelper.GetReader(sql);
List<StudentClass> list = new List<StudentClass>();
while (objReader.Read())
{
list.Add(new StudentClass()
{
ClassId = Convert.ToInt32(objReader["ClassId"]),
ClassName = objReader["ClassName"].ToString()
});
}
objReader.Close();
return list;
}
然后在窗体初始化方法里面调用并绑定数据:
private StudentClassService objClassService = new StudentClassService();
public FrmAddStudent()
{
InitializeComponent();
//初始化班级下拉框
this.cboClassName.DataSource = objClassService.GetAllClasses();
this.cboClassName.DisplayMember = "ClassName";
this.cboClassName.ValueMember = "ClassId";
}
第二种情况:
SQLHelper类中的代码:
public static DataSet GetDataSet(string sql)
{
SqlConnection conn = new SqlConnection(connString);
//SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
然后在窗体初始化方法里面调用并绑定数据:
public partial class FrmVoucherQuery : Form
{
public FrmVoucherQuery()
{
InitializeComponent();
string sql = string.Format("Select FName From t_VoucherGroup Order by FGroupID");
//控件名.DataSource=数据集.数据表
cbVoucherName.DataSource = SQLHelper.GetDataSet(sql).Tables[];
cbVoucherName.DisplayMember = "FName";
cbVoucherName.ValueMember = "FName";
}
}
Winform开发中如何将数据库字段绑定到ComboBox控件的更多相关文章
- .NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件
系列目录 [已更新最新开发文章,点击查看详细] WebView2组件支持在WinForm.WPF.WinUI3.Win32应用程序中集成加载Web网页功能应用.本篇主要介绍如何在WinForm ...
- winform中comboBox控件加默认选项的问题
winform程序设计中,label,TextBox,ComboBox等几个控件几乎是用得最多的,在设计中经常会遇到一些小问题,如:comboBox控件绑定了数据源之后,如何设置默认值? combob ...
- MFC中ComboBox控件用法
MFC ComboBox 一.入门篇 ComboBox (组合框)控件很简单,可以节省空间.从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的.用户可以从一个预先定义的列表里选择一个选项 ...
- 在Winform开发中使用日程控件XtraScheduler(2)--深入理解数据的存储
在上篇随笔<在Winform开发中使用日程控件XtraScheduler>中介绍了DevExpress的XtraScheduler日程控件的各种使用知识点,对于我们来说,日程控件不陌生,如 ...
- 在Winform开发中使用日程控件XtraScheduler
在一些应用场景中,我们可能需要记录某一天,某个时段的日程安排,那么这个时候就需要引入了DevExpress的日程控件XtraScheduler了,这个控件功能非常强大,提供了很好的界面展现方式,以及很 ...
- 在Winform开发中使用Grid++报表
之前一直使用各种报表工具,如RDLC.DevExpress套件的XtraReport报表,在之前一些随笔也有介绍,最近接触锐浪的Grid++报表,做了一些测试例子和辅助类来处理报表内容,觉得还是很不错 ...
- 在Android 开发中使用 SQLite 数据库笔记
SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PH ...
- 在Winform开发中,我们使用的几种下拉列表展示字典数据的方式
在Winform开发中中,我们为了方便客户选择,往往使用系统的字典数据选择,毕竟选择总比输入来的快捷.统一,一般我们都会简单封装一下,以便方便对控件的字典值进行展示处理,本篇随笔介绍DevExpres ...
- WinForm开发中通用附件管理控件设计开发参考
1.引言 在WinForm开发中,文件附件的管理几乎在任何一个应用上都会存在,是一个非常通用集中的公共模块.我们日常记录会伴随着有图片.文档等附件形式来展现,如果为每个业务对象都做一个附件管理,或者每 ...
随机推荐
- linux dig 命令
dig 命令主要用来从 DNS 域名服务器查询主机地址信息. 查询单个域名的 DNS 信息 dig 命令最典型的用法就是查询单个主机的信息. $ dig baidu.com dig 命令默认的输出信息 ...
- npminstall无法安装node-sass
cannot download "https://hithub.com/sass/node-sass/releases/download/v3.13.0/win32-x64-46_bindi ...
- python 3---if判断成绩练习
需求根据用户输入的成绩分档,要求如下: 1. 如果成绩大于60分,输出"及格"2. 如果成绩大于70分,输出"良"3. 如果成绩大于80分,输出"好& ...
- winscp连接虚拟机Linux被拒绝的问题解决方案
输入了正确的账号密码还出现这个错误 我们需要在虚拟机中配置一下,改成这样就行了
- Nodejs mongodb 管理组件adminmongodb
强大的 nodejs的mongodb管理工具,强大到即下即用: 安装需求: 1.git命令获取组件包,git clone https://github.com/mrvautin/adminMongo. ...
- P3092 [USACO13NOV]没有找零No Change
题目描述 Farmer John is at the market to purchase supplies for his farm. He has in his pocket K coins (1 ...
- mysql数据库相关知识
什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库.(来自:百度) 什么是sql? 结构化查询语言(Struct ...
- 第一章:关于Ehcache
PDF官方文档:http://www.ehcache.org/generated/2.10.4/pdf/About_Ehcache.pdf 1.什么是Ehcache? Ehcache是一种开源的基于标 ...
- java中的static和final关键字
一:static 1)修饰成员变量: static关键字可以修饰成员变量,它所修饰的成员变量不属于对象的数据结构,而是属于类的变量,通常通过类名来引用static成员. 当创建对象后,成员变量是存储在 ...
- Bootstrap里的文件分别表示什么?都有什么用?
bootstrap.css 是完整的bootstrap样式表,未经压缩过的,可供开发的时候进行调试用bootstrap.min.css 是经过压缩后的bootstrap样式表,内容和bootstrap ...