在WinForm通过连接数据库来实现省市级联的效果
首先,在数据库中创建两个表,省份表(Province)和城市表(City),两个表之间需建立外键约束,主键是省份Id,

外键是城市表中的省份Id,从而建立起省份和城市之间的从属关系。
示例代码:(SQL Server 2005)
--省份表
if exists (select * from sysobjects where name = 'prov')
drop table prov
go
create table prov
(
 pid int identity(1,1) not null primary key,  --省份编号
 pName nvarchar(20) not null,  --省份名称
)
go

--城市表
if exists (select * from sysobjects where name = 'city')
drop table city
go
create table city
(
 cid int identity(1,1) not null primary key,
 pid int references prov(pid),
 cName nvarchar(20) not null
)
go

然后,创建WinForm项目,在窗体中添加两个下拉列表框,一个显示省份,另一个显示城市;

之后,创建数据库连接,进行业务逻辑处理,在窗体的加载事件中来实现省份下拉列表框显示省份的效果;
      首先声明一个DataSet用来接收数据集合,然后,将该DataSet对象的值赋给省份下拉列表框的DataSoruce
      属性;再设置一下省份下拉列表框的DispalyMember属性,用来指定下拉列表框中显示数据表中哪个字段
示例代码:
private void Form1_Load(object sender, EventArgs e)
{
    DataSet provDS = new DataSet();
    provDS = provManager.GetProv();
    //为省份列表设置数据源
    this.cboPro.DataSource = provDS.Tables[0];
    //设置显示字段
    this.cboPro.DisplayMember = "pName";
}
之后,在省份下拉列表框的"SelectedIndexChanged"事件中编写代码,用来显示对应的城市列表框的内容。
      首先,绑定省份列表中的省份Id,涉及到下拉列表框的ValueMember属性;然后利用下拉列表框的

SelectedValue属性获得该省份Id;再根据获取的省Id为城市列表设置数据源,最后设置城市列表的显示

字段。
示例代码:
private void cboPro_SelectedIndexChanged(object sender, EventArgs e)
{
    //绑定pid
    this.cboPro.ValueMember = "pid";
    //获得pid
    int pid = Convert.ToInt32(this.cboPro.SelectedValue);
    //为城市列表设置数据源
    this.cboCity.DataSource = cityManager.GetCity(pid).Tables[0];
    //设置显示字段
    this.cboCity.DisplayMember = "cName";
}

总结,在WinForm中实现省市级联效果,实际上就是利用了下拉列表框的4个属性来实现的。
DataSource属性用来指定数据源;
DisplayMember属性用来设置显示下拉列表框显示哪个数据库中的字段;
ValueMember属性用来绑定主键;
SelectedValue属性用来获取选中项的Id值,该Id一般都是一个主键,可用该Id值来设置另一个下拉列表框的显

示,从而实现数据显示的联动效果。

转载于:https://www.cnblogs.com/wlly216/archive/2011/09/23/2186677.html

在WinForm中实现省市级联的效果相关推荐

  1. Winform中实现自定义屏保效果(附代码下载)

    场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建form ...

  2. Winform中封装DevExpress的MarqueeProgressBarComtrol实现弹窗式进度条效果

    场景 在Winform中实现弹窗式进度条 新建一个窗体,然后在窗体中加入进度条控件,然后在触发进度条的事件中将加载进度报告给进度条控件. 注: 博客主页: https://blog.csdn.net/ ...

  3. Winform中在使用Dock属性设计页面布局控件的顺序导致页面效果不同的问题

    场景 在Winform中进行页面设计时,常使用控件的Dock属性来进行布局调整.但是由于设置属性的顺序问题,导致达不到想要的效果. 比如以下两个控件 下面的控件设置的Dock属性是Bottom,即在页 ...

  4. JavaScript 省市级联效果

    为什么80%的码农都做不了架构师?>>>    JavaScript 省市级联效果 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...

  5. PyQt5-QComboBox控件使用实现省市级联效果

    #QComboBox下拉列表控件使用,省市级联 from PyQt5.QtWidgets import  QPushButton,QVBoxLayout,QWidget,QApplication,QR ...

  6. 【前端2】js:原始类型,运算符,调试,页面加载,轮播图,Bom(对象,时钟),Dom(全选全不选,省市级联,隔行/触摸换色,表单校验)

    文章目录 1.js两种引入:js最终要引入到html在浏览器中运行 2.js五大原始类型:undefined 3.js的运算符和流程控制:js不支持单&和单|性能低 4.案例_99乘法表:So ...

  7. JavaScript省市级联特效

    JavaScript中不用集合数组版:省市级联特效 代码如下: 效果:

  8. JSDay01--Homework(表格当前行点击变色,下拉框省市级联)

    1.创建table表格,要求: 点击某一行,则该行变色(选中). 答: <!DOCTYPE html> <html lang="en"><head&g ...

  9. 在winform中从外部拖动节点到树形结构(treeview和listview相互拖动)(一)

    最近一个项目要用到从listview向treeview拖动item,达到从外部拖动图标成为树形结构的一部分,通过查阅资料总结了一些实现方式,分享给大家.这是winform中的例子. 在进行拖放操作之前 ...

最新文章

  1. [DNS] 网页无法打开,设置合适的DNS解决问题
  2. 原型机拱手让人,飞行器停售,谷歌创始人押注的飞行汽车,如今搁浅
  3. Android小項目之---時間線程應用(附源碼)
  4. java ListString 转换成带逗号的字符串
  5. 敲点JavaScript代码
  6. Spring-学习笔记04【Spring的常用注解】
  7. OpenCV4.4.0+VS2017 环境配置
  8. ThinkingInJava对this关键字的介绍
  9. java重定向post_java实现响应重定向发送post请求操作示例
  10. Android 8.0 VDEX机制简介
  11. WifiConfiguration 的各字段的填充和修改
  12. 用Delphi编写的一个上网助手
  13. 实用计算机基础,计算机基础知识考题5[实用].pdf
  14. H5页面设置背景图,微信可浏览背景图
  15. html中用js格式化JSON输出
  16. python pdf解密脚本(pikepdf模块)
  17. 好的代码是优质资产、莫让代码成为负债
  18. 2021年P气瓶充装考试题及P气瓶充装最新解析
  19. crc-itu java实现_JAVA编程心得-JAVA实现CRC-CCITT(XMODEM)算法
  20. 【181125】VC++ 绘制立方体的生成与控制旋转程序源代码

热门文章

  1. 空间谱专题02:波束形成(Beamforming)
  2. 上半年银行罚单不断,7月越早贷款越有利
  3. 一只紧握笔的手:地震中的感人图片之二
  4. verilog经验谈
  5. java rc4_nodejs 和 java 进行 rc4 加密得到的结果不一样
  6. estemplate 导入MySQL_[数据库]es~通过ElasticsearchTemplate进行聚合操作
  7. 地址池命令 思科理由_论CCNA基础之常用命令
  8. 最详细的java泛型详解
  9. centos6安装composer
  10. Git忽略规则.gitignore梳理