• 几个数据库的小案例(二):极其简单的省市联动


    总用有两个文件(frmMain.cs SqlHelper.cs)

    //frmMain.cs
    //作者:Me
    using
    System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace 省市联动小案例 { public partial class frmMain : Form { public frmMain() { InitializeComponent(); } //private void ClearAll() //{ // cbCity.Items.Clear(); // cbProvince.Items.Clear(); // cbTown.Items.Clear(); //} private void Form1_Load(object sender, EventArgs e) { //调用Load,加载省 SqlHelper.Load(cbProvince, 0); } private void cbProvince_SelectedIndexChanged(object sender, EventArgs e) { cbCity.Items.Clear(); //调用GetAreaId,获取省的id int proId = SqlHelper.GetAreaId(cbProvince.SelectedItem.ToString()); //调用Load,加载市 SqlHelper.Load(cbCity, proId); } private void cbCity_SelectedIndexChanged(object sender, EventArgs e) { cbTown.Items.Clear(); //调动GetAreaId,获得市的id int cityId = SqlHelper.GetAreaId(cbCity.SelectedItem.ToString()); //调用Load方法,加载镇 SqlHelper.Load(cbTown, cityId); } private void btnShow_Click(object sender, EventArgs e) { //MessageBox.Show(cbProvince.SelectedItem.ToString()+":"+cbCity.SelectedItem.ToString()+":"+cbTown.SelectedItem.ToString()); string province = ""; string city = ""; string town = ""; if (cbProvince.SelectedIndex != -1) { province = cbProvince.SelectedItem.ToString(); } if (cbCity.SelectedIndex != -1) { city = ":" + cbCity.SelectedItem.ToString(); } if (cbTown.SelectedIndex != -1) { town = ":" + cbTown.SelectedItem.ToString(); } MessageBox.Show(province+city+town); } } }

    以下是SqlHelper.cs

    //SqlHelper.cs
    //作者:Me
    using
    System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Windows.Forms; namespace 省市联动小案例 { class SqlHelper { //连接字符串 private static string sqlStr = "server=.;database=WebSite;uid=sa;pwd=123456"; /// <summary> /// 通过名称获取id /// </summary> /// <param name="province">名字</param> /// <returns>id</returns> public static int GetAreaId(string province) { using (SqlConnection conn = new SqlConnection(sqlStr)) { using (SqlCommand cmd = conn.CreateCommand()) { SqlDataReader dr = null; cmd.CommandText = "select ar_id from Area where ar_name = @name"; cmd.Parameters.Add(new SqlParameter("@name", province)); try { conn.Open(); dr = cmd.ExecuteReader(); } catch (Exception ex) { MessageBox.Show("数据库错误: " + ex.Message); return 0; } dr.Read(); return dr.GetInt32(0); } } } /// <summary> /// 通过id,加载名字 /// </summary> /// <param name="cbCity">cbo控件</param> /// <param name="proId">id</param> public static void Load(ComboBox cbCity, int proId) { using (SqlConnection conn = new SqlConnection(sqlStr)) { using (SqlCommand cmd = conn.CreateCommand()) { SqlDataReader dr = null; cmd.CommandText = "select ar_name from Area where ar_uid = @proId"; cmd.Parameters.Add(new SqlParameter("@proId", proId)); try { conn.Open(); dr = cmd.ExecuteReader(); } catch (Exception ex) { MessageBox.Show("数据库错误: " + ex.Message); return; } if (dr.HasRows) { while (dr.Read()) { cbCity.Items.Add(dr[0].ToString()); } } } } } //End } }

    各种控件的命名和属性

    控件名  属性 事件
    cbProvince   cbProvince_SelectedIndexChanged
    cbCity   cbCity_SelectedIndexChanged
    cbTown    
    btnShow   btnShow_Click
  • 相关阅读:
    分布式系统中的限流与熔断
    迷你MVVM框架 avalonjs 0.99发布
    将一个符合URL格式的字符串变成链接
    用CSS开启硬件加速来提高网站性能(转)
    通过window.crypto.getRandomValues获得一个大于零的随机数
    jquery slideDown效果
    五个你必须知道的javascript和web debug技术
    迷你MVVM框架 avalonjs 0.98发布
    使用avalon实现SKU组合查询功能
    angular与avalon对复杂对象的修改
  • 原文地址:https://www.cnblogs.com/hoosway/p/3703333.html
Copyright © 2020-2023  润新知