zoukankan      html  css  js  c++  java
  • 几个数据库的小案例(二):极其简单的省市联动

    总用有两个文件(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
  • 相关阅读:
    作品第二课----改变DIV任意属性的值
    今天遇到的mouseout和mouseleave之坑
    作品第二课----弹出层
    作品第二课----求数组中所有数字的和
    作品第二课----点击DIV显示其内容
    作品第二课----点击切换显示隐藏
    Linux 静态库与动态库
    Linux学习6-套接字
    Linux学习5-线程
    Linux学习4-信号
  • 原文地址:https://www.cnblogs.com/hoosway/p/3703333.html
Copyright © 2011-2022 走看看