2023年6月21日发(作者:)

C#WinFormTreeView动态绑定数据库例如:省、市、区县三级前段时间做项⽬⽤到了TreeView,闲来没事⾃⼰想总结⼀下TreeView的绑定省市县的⽅法,希望对想学习的博友有所帮助。提⽰:省市县数据库可以在⽹上下载资源很多的。废话不多说了上代码……⽤到的与数据库连接的⽅法: ///

/// 执⾏查询数据 /// /// SqlCommand命令类型 (存储过程, T-SQL语句, 等等。) /// 存储过程的名字或者 T-SQL 语句 /// 以数组形式提供SqlCommand命令中⽤到的参数列表 /// >返回⼀个包含结果的DataSet GetDataSet(CommandType commandType, string cmdText, params SqlParameter[] para)具体代码就不贴出来了,就是返回⼀个数据集。接下来的代码就是对TreeView的绑定操作了 private void BindTreeView() { TreeNode ProvinceNode, CityNode, DistrictNode; DataSet ds = new DataSet(); DataTable table = new DataTable(); DataTable districtidTable = new DataTable(); string sql = "select provinceid,provincename from s_province"; string citySql = "select cityid,cityname from s_city where provinceid=@provinceid"; string districtSql = "select districtid,districtname from s_district where cityid=@cityid"; ds = aSet(, sql, null); for (int i = 0; i < [0].; i++) { ProvinceNode = new TreeNode(); //创建【省】节点对象

= [0].Rows[i]["provincename"].ToString(); //显⽰节点的⽂本

= ([0].Rows[i]["provinceid"].ToString()); //保存对应节点的值

(ProvinceNode); //将节点填充到树形控件上 SqlParameter[] parameters = {

new SqlParameter("@provinceid", ,4) ,

}; // 设置参数类型

parameters[0].Value = ([0].Rows[i]["provinceid"].ToString()); table = aSet(, citySql, parameters).Tables[0]; for (int j = 0; j < ; j++) { CityNode = new TreeNode(); //创建【市级】节点

= [j]["cityname"].ToString(); //显⽰节点的⽂本

= ([j]["cityid"].ToString());//显⽰节点对应的值

(CityNode); //将节点绑定到ProvinceNode中 SqlParameter[] district = {

new SqlParameter("@cityid", ,4) ,

}; // 设置参数类型

district[0].Value = ([j]["cityid"].ToString()); districtidTable = aSet(, districtSql, district).Tables[0]; for (int n = 0; n < ; n++) { DistrictNode = new TreeNode(); //创建【县区】节点

= [n]["districtname"].ToString(); //显⽰节点的⽂本

= ([n]["districtid"].ToString()); //显⽰节点对应的值

(DistrictNode); //将该节点填充到CityNode节点中 } } }}OK,齐活了这就……

2023年6月21日发(作者:)

C#WinFormTreeView动态绑定数据库例如:省、市、区县三级前段时间做项⽬⽤到了TreeView,闲来没事⾃⼰想总结⼀下TreeView的绑定省市县的⽅法,希望对想学习的博友有所帮助。提⽰:省市县数据库可以在⽹上下载资源很多的。废话不多说了上代码……⽤到的与数据库连接的⽅法: ///

/// 执⾏查询数据 /// /// SqlCommand命令类型 (存储过程, T-SQL语句, 等等。) /// 存储过程的名字或者 T-SQL 语句 /// 以数组形式提供SqlCommand命令中⽤到的参数列表 /// >返回⼀个包含结果的DataSet GetDataSet(CommandType commandType, string cmdText, params SqlParameter[] para)具体代码就不贴出来了,就是返回⼀个数据集。接下来的代码就是对TreeView的绑定操作了 private void BindTreeView() { TreeNode ProvinceNode, CityNode, DistrictNode; DataSet ds = new DataSet(); DataTable table = new DataTable(); DataTable districtidTable = new DataTable(); string sql = "select provinceid,provincename from s_province"; string citySql = "select cityid,cityname from s_city where provinceid=@provinceid"; string districtSql = "select districtid,districtname from s_district where cityid=@cityid"; ds = aSet(, sql, null); for (int i = 0; i < [0].; i++) { ProvinceNode = new TreeNode(); //创建【省】节点对象

= [0].Rows[i]["provincename"].ToString(); //显⽰节点的⽂本

= ([0].Rows[i]["provinceid"].ToString()); //保存对应节点的值

(ProvinceNode); //将节点填充到树形控件上 SqlParameter[] parameters = {

new SqlParameter("@provinceid", ,4) ,

}; // 设置参数类型

parameters[0].Value = ([0].Rows[i]["provinceid"].ToString()); table = aSet(, citySql, parameters).Tables[0]; for (int j = 0; j < ; j++) { CityNode = new TreeNode(); //创建【市级】节点

= [j]["cityname"].ToString(); //显⽰节点的⽂本

= ([j]["cityid"].ToString());//显⽰节点对应的值

(CityNode); //将节点绑定到ProvinceNode中 SqlParameter[] district = {

new SqlParameter("@cityid", ,4) ,

}; // 设置参数类型

district[0].Value = ([j]["cityid"].ToString()); districtidTable = aSet(, districtSql, district).Tables[0]; for (int n = 0; n < ; n++) { DistrictNode = new TreeNode(); //创建【县区】节点

= [n]["districtname"].ToString(); //显⽰节点的⽂本

= ([n]["districtid"].ToString()); //显⽰节点对应的值

(DistrictNode); //将该节点填充到CityNode节点中 } } }}OK,齐活了这就……