日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

Ado.Net实现简易(省、市、县)三级联动查询,还附加Access数据

發布時間:2025/4/16 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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本身提供的數據訪問類;
  • 需要數據庫及源碼的直接回復我

    如在過程中提示未注冊驅動,請到以下地址:下載安裝即可

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

    ?

    ?

    ?

    ?

    ?

    轉載于:https://www.cnblogs.com/tuqun/p/3642016.html

    總結

    以上是生活随笔為你收集整理的Ado.Net实现简易(省、市、县)三级联动查询,还附加Access数据的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。