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

总用有两个文件(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("数据库错误:\n" + 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("数据库错误:\n" + 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

转载于:https://www.cnblogs.com/hoosway/p/3703333.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值