1. 小弟在博客园驻园不久,初来咋到;将最近写的小程序附上,希望各位大牛们吐槽;激发对程序员围观的童鞋们,赶紧加入IT行业,如果你在上海那简称就是SHIT,哈哈题外话,以下开始切入正题:

坐公交车是旁边偶遇一小朋友,对我天朝区域不甚了解,为了偶的下一代不走回头路,激发爱国热情,故写下以下代码:

需求:

  1. 读取本地数据库(文本、Access);
  2. 根据省、市、县数据库切换,显示子级、父级;

以下是成形图:

实现步骤:

  1. 编写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;
}

总结:

  1. 程序中主要用到数据转换对象的思想(Data——》Object);
  2. Ato.net本身提供的数据访问类;

需要数据库及源码的直接回复我

如在过程中提示未注册驱动,请到以下地址:下载安装即可

http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe

 

Ado.Net实现简易(省、市、县)三级联动查询,还附加Access数据的更多相关文章

  1. 省市区(县)三级联动代码(js 数据源)

    ylbtech-JavaScript-Utility:省市区(县)三级联动代码(js 数据源) 省市区(县)三级联动代码(js 数据源) 1.A,源代码(Source Code)返回顶部 1.A.1, ...

  2. js之省市区(县)三级联动效果

    省市区(县)三级联动效果,是我们软件开发比较常用的,特别是对一些crm,erp之类,当然也包括其他的后台管理系统,基本都涉及到,今天贴出这个常用的,方便个人复用和大家使用 <!DOCTYPE h ...

  3. html实现 省——市——区三级联动

    html实现  省——市——区三级联动 html中实现三级联动是一个不错的demo,博主在这里跟大家分享一下实现的过程,以及自己在过程中出现的一些问题,仅供参考. 首先我们将全国的省市区数据导入进来, ...

  4. ajax(省,市,县)三级联动

    下面我们用Jquery,ajax,做一个省,市,县的三级联动: 下面是我做三级联动下拉的步骤以及逻辑 第一步:先做一个省市区表格 第二步:建个PHP页面显示用我是在<body>里放< ...

  5. UIPickerView实现省 市 区三级联动

    前几天用UIPickerView实现了一下三级联动具体的如下图

  6. 三级联动查询全国省市区(xml与数据库)

    提供有china.xml和china.sql文件,实现全国省市区的三级联动效果 一.xml实现 import java.awt.EventQueue; import javax.swing.JFram ...

  7. Ajax案例:三级联动查询员工的信息(三张表进行内连接)

    需求分析: 通过数据库连接池,可以查询到数据库中员工的各种信息,通过点击下拉框的方式实现三级联动,即:没有点击city下拉框,后面两个下拉框中没有值,这样,点击city下拉框,department下拉 ...

  8. ComboBox(下拉列表框)实现省、市、县三级联动,用hibernate连接数据库

    package com.hanqi.web; import java.io.IOException; import java.util.List; import javax.servlet.Servl ...

  9. JQuery中国省市区无刷新三级联动查询

    之前有写过用<Ajax控件来实现中国的省市区无刷新查询> 今天用JQuery来实现,用Ajax控件和JQuery的优缺点就先不说了. 效果图如下: 下面来结合代码来详细说明一下如何用JQu ...

随机推荐

  1. SharedPreferences保存用户登录信息

    UI界面:

  2. 浅谈我眼中的ASP.NET MVC

    坦白地说,学习MVC是前一段时间的事情了.但是,我当时虽然也实践过,却也不能很好的说出个所以然来.因此,也 一直没敢写点什么文字总结.最近,开始学习EF,也同时在使用MVC来结合EF实践增删改查.慢慢 ...

  3. 利用 Google API 调用谷歌地图 演示1

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. bootstrap-fileinput初体验

    原文:http://www.htmleaf.com/html5/html5muban/201505091801.html Document & Demo: http://plugins.kra ...

  5. DataGrid1

    2013-09-2512:26:31 1.DataGrid页面 <asp:DataGrid ID="msgInfo1" PageSize="8" Auto ...

  6. [windows phone开发]新生助手的开发过程与体会一

    功能需求分析: 1.  为到达学院的新生指路,给出所有路线,并给出必要提示: 2.  对学院建筑进行介绍: 3.  对学院周边环境(交通.购物.银行等)进行介绍: 4.  必要的应用设置 总体设计: ...

  7. 鼠标悬浮图片时弹出透明提示图层的jQuery特效

    源码: <!doctype html> <html class="no-js" lang="en"> <head> < ...

  8. Easyui datebox控件打开页面就验证解决方法

    问题描述: datebox时间控件有些场景下默认值需要为空,但是为空的情况下打开页面会自动验证,十分影响美观. 实现原理: <input class="easyui-databox&q ...

  9. 一个统计目录文件大小的php函数

    早上刚到公司,头告诉我,抓紧写一个小函数,用来统计指定目录中文件大小,我了个去,动手吧,还好有点小基础,一会就完工了,哈哈.代码在下面咯. <? /** 统计目录文件大小的函数 @author  ...

  10. Firebird数据库相关备忘录

    Firebird数据库中有一些很特别的东西,很好用,但由于平时用的不多,记在这里,以备以后用到时查询. 1.以ADO 的OLE ODBC驱动方式访问 Firebird,可以使用如下连接串: FBCon ...