Ado.Net实现简易(省、市、县)三级联动查询,还附加Access数据
- 小弟在博客园驻园不久,初来咋到;将最近写的小程序附上,希望各位大牛们吐槽;激发对程序员围观的童鞋们,赶紧加入IT行业,如果你在上海那简称就是SHIT,哈哈题外话,以下开始切入正题:
坐公交车是旁边偶遇一小朋友,对我天朝区域不甚了解,为了偶的下一代不走回头路,激发爱国热情,故写下以下代码:
需求:
- 读取本地数据库(文本、Access);
- 根据省、市、县数据库切换,显示子级、父级;
以下是成形图:

实现步骤:
- 编写SqlHelper类(主要解决查询操作),代码如下
private static readonly string accessConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Directory.GetCurrentDirectory() + (@"\Areafull.accdb");
/// <summary>
/// 查询access数据,返回table
/// </summary>
/// <param name="sql">执行sql</param>
/// <param name="parameters">查询参数</param>
/// <returns></returns>
public static DataTable ExecuteAccessDateTable(string sql, params SqlParameter[] parameters)
{
using (OleDbConnection cnn = new OleDbConnection(accessConn))
{
cnn.Open();
using (OleDbCommand cmd = cnn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
OleDbDataReader apter = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(apter);
return dt;
}
}
}
2.界面设计
三个ListBox控件分别放入,省,市,县
/// <summary>
/// 初始化加载省数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Window_Loaded(object sender, RoutedEventArgs e)
{
DataTable table = SqlHelper.ExecuteAccessDateTable("select * from areafull where AreaPid='0'");
SlB.ItemsSource = GetAreas(table);//省份绑定
} /// <summary>
/// 省数据选择
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void SlB_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Area areaRow = (Area)SlB.SelectedItem;
DataTable table = SqlHelper.ExecuteDateTable("select * from areafull where AreaPid=@AreaPid", new SqlParameter("@AreaPid", areaRow.AreaId));
SJBX.ItemsSource = GetAreas(table);
} /// <summary>
/// 市级数据选择
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void SJBX_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (SJBX.SelectedItem != null)
{
Area areaRow = (Area)SJBX.SelectedItem;
DataTable table = SqlHelper.ExecuteDateTable("select * from areafull where AreaPid=@AreaPid", new SqlParameter("@AreaPid", areaRow.AreaId));
XJBX.ItemsSource = GetAreas(table);
}
else
{
XJBX.ItemsSource = null;
}
} /// <summary>
/// 数据转换对象
/// </summary>
/// <param name="table"></param>
/// <returns></returns>
private List<Area> GetAreas(DataTable table)
{
List<Area> lst = new List<Area>();
foreach (DataRow item in table.Rows)
{
Area are = new Area();
are.AreaId = Convert.ToInt32(item["Areaid"]);
are.AreaName = item["AreaName"].ToString();
are.AreaPid = Convert.ToInt32(item["AreaPid"]);
lst.Add(are);
}
return lst;
}
总结:
- 程序中主要用到数据转换对象的思想(Data——》Object);
- Ato.net本身提供的数据访问类;
需要数据库及源码的直接回复我
如在过程中提示未注册驱动,请到以下地址:下载安装即可
Ado.Net实现简易(省、市、县)三级联动查询,还附加Access数据的更多相关文章
- 省市区(县)三级联动代码(js 数据源)
ylbtech-JavaScript-Utility:省市区(县)三级联动代码(js 数据源) 省市区(县)三级联动代码(js 数据源) 1.A,源代码(Source Code)返回顶部 1.A.1, ...
- js之省市区(县)三级联动效果
省市区(县)三级联动效果,是我们软件开发比较常用的,特别是对一些crm,erp之类,当然也包括其他的后台管理系统,基本都涉及到,今天贴出这个常用的,方便个人复用和大家使用 <!DOCTYPE h ...
- html实现 省——市——区三级联动
html实现 省——市——区三级联动 html中实现三级联动是一个不错的demo,博主在这里跟大家分享一下实现的过程,以及自己在过程中出现的一些问题,仅供参考. 首先我们将全国的省市区数据导入进来, ...
- ajax(省,市,县)三级联动
下面我们用Jquery,ajax,做一个省,市,县的三级联动: 下面是我做三级联动下拉的步骤以及逻辑 第一步:先做一个省市区表格 第二步:建个PHP页面显示用我是在<body>里放< ...
- UIPickerView实现省 市 区三级联动
前几天用UIPickerView实现了一下三级联动具体的如下图
- 三级联动查询全国省市区(xml与数据库)
提供有china.xml和china.sql文件,实现全国省市区的三级联动效果 一.xml实现 import java.awt.EventQueue; import javax.swing.JFram ...
- Ajax案例:三级联动查询员工的信息(三张表进行内连接)
需求分析: 通过数据库连接池,可以查询到数据库中员工的各种信息,通过点击下拉框的方式实现三级联动,即:没有点击city下拉框,后面两个下拉框中没有值,这样,点击city下拉框,department下拉 ...
- ComboBox(下拉列表框)实现省、市、县三级联动,用hibernate连接数据库
package com.hanqi.web; import java.io.IOException; import java.util.List; import javax.servlet.Servl ...
- JQuery中国省市区无刷新三级联动查询
之前有写过用<Ajax控件来实现中国的省市区无刷新查询> 今天用JQuery来实现,用Ajax控件和JQuery的优缺点就先不说了. 效果图如下: 下面来结合代码来详细说明一下如何用JQu ...
随机推荐
- SharedPreferences保存用户登录信息
UI界面:
- 浅谈我眼中的ASP.NET MVC
坦白地说,学习MVC是前一段时间的事情了.但是,我当时虽然也实践过,却也不能很好的说出个所以然来.因此,也 一直没敢写点什么文字总结.最近,开始学习EF,也同时在使用MVC来结合EF实践增删改查.慢慢 ...
- 利用 Google API 调用谷歌地图 演示1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- bootstrap-fileinput初体验
原文:http://www.htmleaf.com/html5/html5muban/201505091801.html Document & Demo: http://plugins.kra ...
- DataGrid1
2013-09-2512:26:31 1.DataGrid页面 <asp:DataGrid ID="msgInfo1" PageSize="8" Auto ...
- [windows phone开发]新生助手的开发过程与体会一
功能需求分析: 1. 为到达学院的新生指路,给出所有路线,并给出必要提示: 2. 对学院建筑进行介绍: 3. 对学院周边环境(交通.购物.银行等)进行介绍: 4. 必要的应用设置 总体设计: ...
- 鼠标悬浮图片时弹出透明提示图层的jQuery特效
源码: <!doctype html> <html class="no-js" lang="en"> <head> < ...
- Easyui datebox控件打开页面就验证解决方法
问题描述: datebox时间控件有些场景下默认值需要为空,但是为空的情况下打开页面会自动验证,十分影响美观. 实现原理: <input class="easyui-databox&q ...
- 一个统计目录文件大小的php函数
早上刚到公司,头告诉我,抓紧写一个小函数,用来统计指定目录中文件大小,我了个去,动手吧,还好有点小基础,一会就完工了,哈哈.代码在下面咯. <? /** 统计目录文件大小的函数 @author ...
- Firebird数据库相关备忘录
Firebird数据库中有一些很特别的东西,很好用,但由于平时用的不多,记在这里,以备以后用到时查询. 1.以ADO 的OLE ODBC驱动方式访问 Firebird,可以使用如下连接串: FBCon ...