数据服务控件的嵌套最主要的是是内层控件数据的加载和事件的触发。 DataList嵌套的重点是要在外层DataList的ItemDataBound事件中用e.Item.FindControl方法来找到嵌套层DataList的id,编写嵌套层DataList的绑定数据源事件。下面以两层DataList为例介绍下实现的过程。效果如下图:
---------前台html代码-------
<
asp:datalist
id
="dlFileType"
RepeatColumns
="2"
runat
="server"
>
<
ItemTemplate
>
<
table
border
="0"
cellspacing
="0"
cellpadding
="0"
>
<
tr
>
<
td
width
="22%"
height
="88"
align
="center"
valign
="top"
>
<
img
src
='<%#DataBinder.Eval(Container.DataItem,
"cnvcPicURL")%
>
' width="80" height="80">
</
td
>
<
td
valign
="top"
>
<
table
width
="96%"
border
="0"
cellpadding
="0"
cellspacing
="0"
>
<
tr
width
="100%"
>
<
td
colspan
="2"
><
img
src
='<%#PageBase.strStyleRoot+"/picture/pic_fwzn_08.gif"%
>
' width="154" height="20">
<
asp:Label
id
="labFileType"
runat
="server"
Visible
=False
Text
='<%#
DataBinder.Eval(Container.DataItem,"cniFileTypeID")%
>
'>
</
asp:Label
></
td
>
</
tr
>
<
tr
>
<
td
width
="300"
>
<
asp:DataList
id
="dlFileList"
runat
="server"
RepeatColumns
="1"
Width
="100%"
>
<
ItemTemplate
>
<
TABLE
cellSpacing
="1"
cellPadding
="1"
width
="100%"
border
="0"
>
<
tr
>
<
td
width
="7%"
height
="20"
align
="center"
>
<
img
src
='<%#PageBase.strStyleRoot+"/picture/pic_fwzn_dot.gif"%
>
' width="3" height="3">
</
td
>
<
td
width
="93%"
>
<
font
color
="#393939"
>
<% #GetTitle((string)Convert.ToString(DataBinder.Eval(Container.DataItem, "cnvcTitle")),(string)Convert.ToString(DataBinder.Eval(Container.DataItem, "cnvcFileType")),(string)Convert.ToString(DataBinder.Eval(Container.DataItem, "cniBaseFileID")),(DateTime)DataBinder.Eval(Container.DataItem, "cndtPublishTime")) %>
</
font
>
</
td
>
</
tr
>
</
TABLE
>
</
ItemTemplate
>
</
asp:DataList
>
</
td
>
</
tr
>
<
tr
>
<
td
colspan
="2"
bgcolor
="E6E6E6"
height
="1"
><
img
src
='<%#PageBase.strStyleRoot+"/picture/1X1.gif"%
>
' width="1" >
</
td
>
</
tr
>
<
tr
align
="center"
>
<
td
height
="22"
colspan
="2"
><
a
href
="#"
title
="可查看到更多相关内容"
><
img
src
='<%#PageBase.strStyleRoot+"/picture/more.gif"%
>
' width="34" height="11" border="0">
</
a
></
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
</
table
>
</
ItemTemplate
>
</
asp:datalist
>
<
HTML
>
<
HEAD
>
<
title
>
NestedDataLists
</
title
>
<
meta
name
="GENERATOR"
Content
="Microsoft Visual Studio .NET 7.1"
>
<
meta
name
="CODE_LANGUAGE"
Content
="C#"
>
<
meta
name
="vs_defaultClientScript"
content
="JavaScript"
>
<
meta
name
="vs_targetSchema"
content
="http://singlepine.cnblogs.com/"
>
</
HEAD
>
<
body
MS_POSITIONING
="GridLayout"
>
<
form
id
="Form1"
method
="post"
runat
="server"
>
<
asp:DataList
runat
="server"
Id
="dlCategories"
GridLines
="Both"
Bordercolor
="black"
cellpadding
="3"
cellspacing
="0"
Headerstyle-BackColor
="#DDDDDD"
Headerstyle-Forecolor
="#777777"
Headerstyle-Font-Name
="Arial"
Headerstyle-Font-Size
="14"
Headerstyle-Font-Bold
="true"
Font-Name
="Arial"
Font-Bold
="true"
Font-Italic
="true"
Font-Size
="11"
ForeColor
="Red"
RepeatColumns
="1"
>
<
HeaderTemplate
>
省市 & 市区
</
HeaderTemplate
>
<
ItemTemplate
>
![](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
<%
# DataBinder.Eval(Container, "DataItem.province")
%>
<
br
>
<
asp:DataList
runat
="server"
Id
="ChildDataList"
GridLines
="None"
Bordercolor
="black"
cellpadding
="3"
cellspacing
="0"
Headerstyle-BackColor
="#8080C0"
Headerstyle-Font-Name
="Arial"
Headerstyle-Font-Size
="8"
Font-Name
="Arial"
Font-Size
="8"
datasource
='<%#
DataBinder.Eval(Container, "DataItem.myrelation") %
>
' RepeatColumns="5">
<
ItemTemplate
>
![](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
<%
# DataBinder.Eval(Container, "DataItem.city")
%>
</
ItemTemplate
>
</
asp:DataList
>
</
ItemTemplate
>
</
asp:DataList
>
</
form
>
</
body
>
</
HTML
>
public
class
NestedDataLists : System.Web.UI.Page
![](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
{
protected System.Web.UI.WebControls.DataList dlCategories;
private void Page_Load(object sender, System.EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/3112b7b6526db5bc83e275260ae60525.gif)
{
string constring=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
DataSet ds=new DataSet();
string sql1="select * from province";
SqlDataAdapter sda1 =new SqlDataAdapter(sql1,constring);
sda1.Fill(ds,"province");
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
string sql2="select * from city";
SqlDataAdapter sda2 =new SqlDataAdapter(sql2,constring);
sda2.Fill(ds,"city");
ds.Relations.Add("myrelation", ds.Tables["province"].Columns["provinceID"], ds.Tables["city"].Columns["father"]);
dlCategories.DataSource=ds.Tables["province"].DefaultView;
dlCategories.DataBind();
}
![](https://i-blog.csdnimg.cn/blog_migrate/f2671b7f42ce505d9bf55a7a0ca257fb.gif)
Web Form Designer generated code#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/3112b7b6526db5bc83e275260ae60525.gif)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
![](https://i-blog.csdnimg.cn/blog_migrate/3112b7b6526db5bc83e275260ae60525.gif)
/**//// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
![](https://i-blog.csdnimg.cn/blog_migrate/3112b7b6526db5bc83e275260ae60525.gif)
{
this.Load += new System.EventHandler(this.Page_Load);
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
}
#endregion
}
![](http://www.cppdev.cn/upload/2006_12/061213111396111.gif)
---------前台html代码-------
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
<% #GetTitle((string)Convert.ToString(DataBinder.Eval(Container.DataItem, "cnvcTitle")),(string)Convert.ToString(DataBinder.Eval(Container.DataItem, "cnvcFileType")),(string)Convert.ToString(DataBinder.Eval(Container.DataItem, "cniBaseFileID")),(DateTime)DataBinder.Eval(Container.DataItem, "cndtPublishTime")) %>
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
![](http://www.cppdev.cn/upload/2006_12/061213111396112.gif)
--------后台cs代码------
内层控件数据绑定与事件声明在外层的ItemDataBind中实现
private
void
dlFileType_ItemDataBound(
object
sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataList dl = null ;
Label labTypeID = null ;
dl = (DataList)e.Item.FindControl( " dlFileList " )
labTypeID = (Label)e.Item.FindControl( " lbFileType " );
string typeID = labTypeID.Text.ToString();
int iTypeID = Convert.ToInt32(typeID);
string commandText = "select * from tbfile";
commandText = commandText + " Where TypeID=" + iTypeID;
//------------
string connString = ConfigurationSettings.AppSettings["dsn"];
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connString;
conn.Open();
SqlDataAdapter myCommand = new SqlDataAdapter(commandText,conn);
DataSet ds = new DataSet();
myCommand .Fill(ds,"tbFile");
conn.Close();
//------------
dl.DataSource = ds.Tables["tbFile"];;
dl.DataBind();
}
}
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataList dl = null ;
Label labTypeID = null ;
dl = (DataList)e.Item.FindControl( " dlFileList " )
labTypeID = (Label)e.Item.FindControl( " lbFileType " );
string typeID = labTypeID.Text.ToString();
int iTypeID = Convert.ToInt32(typeID);
string commandText = "select * from tbfile";
commandText = commandText + " Where TypeID=" + iTypeID;
//------------
string connString = ConfigurationSettings.AppSettings["dsn"];
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connString;
conn.Open();
SqlDataAdapter myCommand = new SqlDataAdapter(commandText,conn);
DataSet ds = new DataSet();
myCommand .Fill(ds,"tbFile");
conn.Close();
//------------
dl.DataSource = ds.Tables["tbFile"];;
dl.DataBind();
}
}
如果“labFileType”控件只是为了传递cniFileTypeID值,cs代码里获取typeID的代码可以改为:
int iTypeID = (int)DataBinder.Eval(e.Item.DataItem, "cniFileTypeID");
-------------------------------------------------------------------------------------------------------------------------------------------------
另一形式:
1.html代码
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0be121fa5b8988fbabbbc526af3b0fc0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0be121fa5b8988fbabbbc526af3b0fc0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
2.cs代码
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0be121fa5b8988fbabbbc526af3b0fc0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3112b7b6526db5bc83e275260ae60525.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f2671b7f42ce505d9bf55a7a0ca257fb.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/eec4c0236afc26744c9c4e910bc34958.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f2671b7f42ce505d9bf55a7a0ca257fb.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3112b7b6526db5bc83e275260ae60525.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3112b7b6526db5bc83e275260ae60525.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f2671b7f42ce505d9bf55a7a0ca257fb.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/eec4c0236afc26744c9c4e910bc34958.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3112b7b6526db5bc83e275260ae60525.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f2671b7f42ce505d9bf55a7a0ca257fb.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/eec4c0236afc26744c9c4e910bc34958.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3112b7b6526db5bc83e275260ae60525.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f2671b7f42ce505d9bf55a7a0ca257fb.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/eec4c0236afc26744c9c4e910bc34958.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/eec4c0236afc26744c9c4e910bc34958.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4fd96b3cf02f4c7b5c8964ac8167f7af.gif)
3.演示数据库/Files/singlepine/area1.rar