在sql数据库中完成省市县三级联动的代码怎么写啊

在sql数据库中完成省市县三级联动的代码怎么写啊,第1张

联动代码数据库没啥大关系,数据库只管存储

数据库可以支持你用sql查询出来父子结构排序的数据集,但是这跟三级联动没什么必然联系

你可以考虑一次性读取全部数据,分成三组,在页面上用js *** 作数组和dom对象进行关联运算

如果嫌每次都要重新读数据库,可以把数据定义在js文件里

也可以用ajax在用户选择的时候实时加载

方向已给出

代码自己百度

数据表:

CREATE TABLE CateTable (

[ID] [int] IDENTITY (1, 1) NOT NULL ,

[CateName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,

[RootID] [int] NOT NULL ,

[ParentID] [int] NOT NULL

)

GO

存储过程:

CREATE PROCEDURE CateTable_GetList AS

BEGIN

Select

CateID,

CateName,

RootID,

ParentID

From

CateTable

Order By

CateID,RootID,ParentID

END

代码:

private void MainForm_Load(object sender, EventArgs e)

{

//从数据库中读取数据

SqlConnection con = new SqlConnection(ConnString.ConStr)

SqlCommand cmd = new SqlCommand("CateTable_GetList", con)

cmd.CommandType = CommandType.StoredProcedure

SqlDataAdapter sda = new SqlDataAdapter(cmd)

DataSet ds = new DataSet()

try

{

sda.Fill(ds)

}

catch

{

}

finally

{

cmd = null

con.Close()

}

//往TreeView中添加树节点

//添加根节点

TreeNode tn = new TreeNode()

tn.Text = "种类"

tn.Name = "0"//Name作为ID

tn.Tag = "0"//Tag作为RootID

tn.ImageIndex = 0

tn.SelectedImageIndex = 0

tv.Nodes.Add(tn)//该TreeView命名为tv

tv.SelectedNode = tv.TopNode

//把其他节点加上去

if (ds != null)

{

foreach (DataRow dr in ds.Tables[0].Rows)

{

tn = new TreeNode()

tn.Text = dr["CateName"].ToString()

tn.Name = dr["CateID"].ToString()//Name作为CateID

tn.Tag = dr["RootID"].ToString()//Tag作为RootID

tn.ImageIndex = 1

tn.SelectedImageIndex = 1

//判断是否为主节点

if (dr["CateID"].ToString() == dr["RootID"].ToString())

{

//主节点

tv.SelectedNode = tv.TopNode

}

else

{

//其他节点

if (tv.SelectedNode.Name != dr["ParentID"].ToString())

{

TreeNode[] tn_temp = tv.Nodes.Find(dr["ParentID"].ToString(), true)

if (tn_temp.Length >0)

{

tv.SelectedNode = tn_temp[0]

}

}

}

tv.SelectedNode.Nodes.Add(tn)

}

tv.ExpandAll()//展开TreeView

tv.SelectedNode = tv.TopNode

}

}

给你一些思路:

1、省市县的数据写到数据库中。每条数据会有一个父ID(上级ID)。

2、在页面上省变动后,查询市的数据以省的ID作为条件,县也一样,以市 的ID为条件。

第二种方法,

由于全国的这些基本上是固定的,一般变动比较少,这可以把这个数据写到JS里面,通过JS来实现。这个加载会快一些。这些数据可以到国家统计局的网站去下载。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6423315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-21
下一篇 2023-03-21

发表评论

登录后才能评论

评论列表(0条)

保存