这里第一次用到了自己的抽象工厂模式(Abstract Factory Pattern),但实际上却很失败——系统所有的数据访问基本上都要求用SP来做,这使得我的工厂形同虚设
但无论如何,还是写一下这个工厂吧:
首先是抽象工厂类(AbstractDbFactory.cs)
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4
using
System.Data;
5![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
namespace
DAL
7![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
8![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
9
/// 数据库抽象工厂接口
10
/// </summary>
11
public interface AbstractDbFactory
12![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
13![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
14
/// 建立默认连接
15
/// </summary>
16
/// <returns>数据库连接</returns>
17
IDbConnection CreateConnection();
18![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
20
/// 根据连接字符串建立Connection对象
21
/// </summary>
22
/// <param name="strConn">连接字符串</param>
23
/// <returns>Connection对象</returns>
24
IDbConnection CreateConnection(string strConn);
25![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
27
/// 建立Command对象
28
/// </summary>
29
/// <returns>Command对象</returns>
30
IDbCommand CreateCommand();
31![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
33
/// 建立DataAdapter对象
34
/// </summary>
35
/// <returns>DataAdapter对象</returns>
36
IDbDataAdapter CreateDataAdapter();
37![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
39
/// 根据Connection建立Transaction
40
/// </summary>
41
/// <param name="myDbConnection">Connection对象</param>
42
/// <returns>Transaction对象</returns>
43
IDbTransaction CreateTransaction(IDbConnection myDbConnection);
44![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
46
/// 根据Command建立DataReader
47
/// </summary>
48
/// <param name="myDbCommand">Command对象</param>
49
/// <returns>DataReader对象</returns>
50
IDataReader CreateDataReader(IDbCommand myDbCommand);
51![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
52![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
53
/// 根据参数名和参数值建立DataParamter
54
/// </summary>
55
/// <param name="strProcName">参数名称</param>
56
/// <param name="value">参数值</param>
57
/// <returns>DataParamter对象</returns>
58
IDataParameter CreateDataParamter(string strParaName,object value);
59![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
61
/// 获得连接字符串
62
/// </summary>
63
/// <returns>连接字符串</returns>
64
string GetConnectionString();
65
}
66
}
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
8
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
9
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
11
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
13
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
14
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
20
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
24
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
25
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
27
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
30
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
31
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
33
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
36
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
37
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
39
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
43
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
44
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
46
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
47
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
48
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
50
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
51
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
52
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
53
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
58
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
59
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
61
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
62
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
63
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
64
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
65
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
66
![ExpandedBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
然后是通用工厂接口(Factory.cs)
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4
using
System.Configuration;
5
using
System.Xml;
6![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
namespace
DAL
8![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
9![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
10
/// Factory类
11
/// </summary>
12
public sealed class Factory
13![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
14
private static volatile Factory singleFactory = null;
15
private static object syncObj = new object();
16![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
17
/// Factory类构造函数
18
/// </summary>
19
private Factory()
20![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
21
}
22![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
24
/// 获得Factory类的实例
25
/// </summary>
26
/// <returns>Factory类实例</returns>
27
public static Factory GetInstance()
28![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
29
if (singleFactory == null)
30![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
31
lock (syncObj)
32![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
33
if (singleFactory == null)
34![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
35
singleFactory = new Factory();
36
}
37
}
38
}
39
return singleFactory;
40
}
41![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////// <summary>
43
///// Read confing
44
///// </summary>
45
///// <param name="appKey">参数</param>
46
///// <returns></returns>
47
//public string GetConfigValue(string appKey)
48
//{
49
// XmlDocument xDoc = new XmlDocument();
50
// try
51
// {
52
// xDoc.Load(".//DAL.dll.config");
53
// //xDoc.Load(System.Windows.Forms.Application.ExecutablePath+".config");
54
// XmlNode xNode;
55
// XmlElement xElem;
56
// xNode = xDoc.SelectSingleNode("//appSettings");
57
// xElem = (XmlElement)xNode.SelectSingleNode("//add[@key='" + appKey + "']");
58
// if (xElem != null)
59
// return xElem.GetAttribute("value");
60
// else
61
// return "";
62
// }
63
// catch (Exception)
64
// {
65
// return "";
66
// }
67
//}
68![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
70
/// 建立Factory类实例
71
/// </summary>
72
/// <returns>Factory类实例</returns>
73
public AbstractDbFactory CreateInstance()
74![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
75
AbstractDbFactory abstractDbFactory = null;
76
switch (ConfigurationSettings.AppSettings["DatabaseType"].ToLower())
77![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
78
case "sqlserver":
79![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
80
abstractDbFactory = new SqlFactory();
81
break;
82
}
83
case "oledb":
84![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
85
abstractDbFactory = new OleDbFactory();
86
break;
87
}
88
case "odbc":
89![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
90
abstractDbFactory = new OdbcFactory();
91
break;
92
}
93
}
94
return abstractDbFactory;
95
}
96
}
97
}
98![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
99
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
9
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
10
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
12
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
14
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
17
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
19
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
21
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
24
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
25
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
27
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
29
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
31
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
33
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
35
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
37
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
38
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
39
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
41
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
43
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
44
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
46
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
47
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
48
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
50
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
51
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
52
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
53
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
59
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
61
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
62
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
63
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
64
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
65
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
66
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
70
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
71
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
72
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
73
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
74
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
75
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
76
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
78
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
79
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
80
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
81
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
82
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
83
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
84
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
85
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
86
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
87
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
88
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
89
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
90
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
91
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
92
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
93
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
94
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
95
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
96
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
97
![ExpandedBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
98
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
99
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
具体工厂类,这里写一个SQL的作例子吧(SqlFactory.cs)
1
using
System;
2
using
System.Data;
3
using
System.Data.SqlClient;
4
using
System.Configuration;
5![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
namespace
DAL
8![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
9![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
10
/// 针对SqlServer专用连接的工厂
11
/// </summary>
12
public class SqlFactory : AbstractDbFactory
13![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
14![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
15
/// 构造函数
16
/// </summary>
17
public SqlFactory()
18![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
19
}
20![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
22
/// 建立默认Connection对象
23
/// </summary>
24
/// <returns>Connection对象</returns>
25
public IDbConnection CreateConnection()
26![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
27
return new SqlConnection();
28
}
29![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
31
/// 根据连接字符串建立Connection对象
32
/// </summary>
33
/// <param name="strConn">连接字符串</param>
34
/// <returns>Connection对象</returns>
35
public IDbConnection CreateConnection(string strConn)
36![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
37
return new SqlConnection(strConn);
38
}
39![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
41
/// 建立Command对象
42
/// </summary>
43
/// <returns>Command对象</returns>
44
public IDbCommand CreateCommand()
45![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
46
return new SqlCommand();
47
}
48![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
50
/// 建立DataAdapter对象
51
/// </summary>
52
/// <returns>DataAdapter对象</returns>
53
public IDbDataAdapter CreateDataAdapter()
54![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
55
return new SqlDataAdapter();
56
}
57![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
59
/// 根据Connection建立Transaction
60
/// </summary>
61
/// <param name="myDbConnection">Connection对象</param>
62
/// <returns>Transaction对象</returns>
63
public IDbTransaction CreateTransaction(IDbConnection myDbConnection)
64![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
65
return myDbConnection.BeginTransaction();
66
}
67![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
69
/// 根据Command建立DataReader
70
/// </summary>
71
/// <param name="myDbCommand">Command对象</param>
72
/// <returns>DataReader对象</returns>
73
public IDataReader CreateDataReader(IDbCommand myDbCommand)
74![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
75
return myDbCommand.ExecuteReader();
76
}
77![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
78![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
79
/// 根据参数名和参数值建立DataParamter
80
/// </summary>
81
/// <param name="strProcName">参数名称</param>
82
/// <param name="value">参数值</param>
83
/// <returns>DataParamter对象</returns>
84
public IDataParameter CreateDataParamter(string strParaName, object value)
85![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
86
return new SqlParameter(strParaName, value);
87
}
88![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
89![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
90![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
91
/// 获得连接字符串
92
/// </summary>
93
/// <returns>连接字符串</returns>
94
public string GetConnectionString()
95![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
96
string strServer = ConfigurationSettings.AppSettings["SqlServerServer"];
97
string strDatabase = ConfigurationSettings.AppSettings["SqlServerDatabase"];
98
string strUid = ConfigurationSettings.AppSettings["SqlServerUid"];
99
string strPwd = ConfigurationSettings.AppSettings["SqlServerPwd"];
100
string strConnectionString = "Server = " + strServer + "; Database = " + strDatabase + "; Uid = " + strUid + "; Pwd = " + strPwd + ";";
101
return strConnectionString;
102
}
103![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
104![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
105![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
106
}
107
}
108
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
9
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
10
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
12
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
14
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
15
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
19
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
22
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
25
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
27
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
29
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
31
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
33
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
35
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
37
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
39
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
41
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
44
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
46
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
47
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
48
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
50
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
51
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
52
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
53
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
55
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
57
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
59
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
61
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
62
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
63
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
64
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
65
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
66
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
67
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
69
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
70
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
71
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
72
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
73
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
74
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
75
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
76
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
77
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
78
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
79
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
80
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
81
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
82
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
83
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
84
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
85
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
86
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
87
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
88
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
89
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
90
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
91
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
92
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
93
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
94
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
95
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
96
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
97
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
98
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
99
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
100
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
101
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
102
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
103
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
104
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
105
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
106
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
107
![ExpandedBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
108
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
最后就可以写数据访问类了,这里最好采用“事务”(DbAccess.cs)
1
using
System;
2
using
System.Data;
3
using
System.Data.SqlClient;
4![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
namespace
DAL
6![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
7![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
8
/// DbAccess类,即进行数据库访问时需要调用的类
9
/// </summary>
10
public sealed class DbAccess
11![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
12![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
13
/// DbAccess构造函数
14
/// </summary>
15
private DbAccess()
16![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
17
}
18![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
20
/// 无条件查询操作,即查询表中所有记录
21
/// </summary>
22
/// <param name="strTableName">表名</param>
23
/// <param name="strColumn">列名组</param>
24
/// <returns>无条件查询结果</returns>
25
public static DataSet SelectAll(string strTableName, string[] strColumn)
26![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
27
DataSet ds = new DataSet();
28
Factory factory = Factory.GetInstance();
29
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
30
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
31
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
32
concreteDbConn.Open();
33
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
34
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
35
concreteDbCommand.Connection = concreteDbConn;
36
concreteDbCommand.Transaction = concreteDbTrans;
37
IDbDataAdapter concreteDbAdapter = abstractDbFactory.CreateDataAdapter();
38
try
39![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
40
string strSql = "SELECT ";
41
for (int i = 0; i < strColumn.Length - 1; i++)
42![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
43
strSql += (strColumn[i] + ", ");
44
}
45
strSql += (strColumn[strColumn.Length - 1] + " FROM " + strTableName);
46
concreteDbCommand.CommandText = strSql;
47
concreteDbAdapter.SelectCommand = concreteDbCommand;
48
concreteDbAdapter.Fill(ds);
49
concreteDbTrans.Commit();
50
}
51
catch
52![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
53
concreteDbTrans.Rollback();
54
ds.Clear();
55
throw;
56
}
57
finally
58![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
59
concreteDbConn.Close();
60
}
61
return ds;
62
}
63![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
64![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
65
/// 条件查询操作
66
/// </summary>
67
/// <param name="strTableName">表名</param>
68
/// <param name="strColumn">列名组</param>
69
/// <param name="strCondition">条件</param>
70
/// <returns>条件查询结果</returns>
71
public static DataSet Select(string strTableName, string[] strColumn, string strCondition)
72![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
73
DataSet ds = new DataSet();
74
Factory factory = Factory.GetInstance();
75
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
76
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
77
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
78
concreteDbConn.Open();
79
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
80
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
81
concreteDbCommand.Connection = concreteDbConn;
82
concreteDbCommand.Transaction = concreteDbTrans;
83
IDbDataAdapter concreteDbAdapter = abstractDbFactory.CreateDataAdapter();
84
try
85![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
86
string strSql = "SELECT ";
87
for (int i = 0; i < strColumn.Length - 1; i++)
88![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
89
strSql += (strColumn[i] + ", ");
90
}
91
strSql += (strColumn[strColumn.Length - 1] + " FROM " + strTableName + " WHERE " + strCondition);
92
concreteDbCommand.CommandText = strSql;
93
concreteDbAdapter.SelectCommand = concreteDbCommand;
94
concreteDbAdapter.Fill(ds);
95
concreteDbTrans.Commit();
96
}
97
catch
98![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
99
concreteDbTrans.Rollback();
100
ds.Clear();
101
throw;
102
}
103
finally
104![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
105
concreteDbConn.Close();
106
}
107
return ds;
108
}
109![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
110![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
111
/// 单条记录的插入操作
112
/// </summary>
113
/// <param name="strTableName">表名</param>
114
/// <param name="strColumn">列名组</param>
115
/// <param name="strvalue">值组</param>
116
public static void Insert(string strTableName, string[] strColumn, object[] strvalue)
117![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
118
Factory factory = Factory.GetInstance();
119
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
120
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
121
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
122
concreteDbConn.Open();
123
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
124
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
125
concreteDbCommand.Connection = concreteDbConn;
126
concreteDbCommand.Transaction = concreteDbTrans;
127
try
128![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
129
string strSql = "INSERT INTO " + strTableName + " (";
130
for (int i = 0; i < strColumn.Length - 1; i++)
131![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
132
strSql += (strColumn[i] + ", ");
133
}
134
strSql += (strColumn[strColumn.Length - 1] + ") valueS (’");
135
for (int i = 0; i < strvalue.Length - 1; i++)
136![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
137
strSql += (strvalue[i] + "’, ’");
138
}
139
strSql += (strvalue[strvalue.Length - 1] + "’)");
140
concreteDbCommand.CommandText = strSql;
141
concreteDbCommand.ExecuteNonQuery();
142
concreteDbTrans.Commit();
143
}
144
catch
145![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
146
concreteDbTrans.Rollback();
147
throw;
148
}
149
finally
150![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
151
concreteDbConn.Close();
152
}
153
}
154![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
155![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
156
/// 批量记录的插入操作,即可一次向多张表中插入不同的批量记录
157
/// </summary>
158
/// <param name="ds">批量记录组成的DataSet,DataSet中的各个DataTable名为表名,各DataTable中的DataColumn名为列名</param>
159
public static void InsertSet(ref DataSet ds)
160![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
161
Factory factory = Factory.GetInstance();
162
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
163
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
164
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
165
concreteDbConn.Open();
166
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
167
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
168
concreteDbCommand.Connection = concreteDbConn;
169
concreteDbCommand.Transaction = concreteDbTrans;
170
try
171![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
172
foreach (DataTable dt in ds.Tables)
173![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
174
foreach (DataRow dr in dt.Rows)
175![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
176
string strSql = "INSERT INTO " + dt.TableName + " (";
177
for (int i = 0; i < dt.Columns.Count - 1; i++)
178![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
179
strSql += (dt.Columns[i].Caption + ", ");
180
}
181
strSql += (dt.Columns[dt.Columns.Count - 1].Caption + ") valueS (’");
182
for (int i = 0; i < dt.Columns.Count - 1; i++)
183![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
184
strSql += (dr[i] + "’, ’");
185
}
186
strSql += (dr[dt.Columns.Count - 1] + "’)");
187
concreteDbCommand.CommandText = strSql;
188
concreteDbCommand.ExecuteNonQuery();
189
}
190
}
191
concreteDbTrans.Commit();
192
}
193
catch
194![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
195
concreteDbTrans.Rollback();
196
throw;
197
}
198![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
199
finally
200![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
201
concreteDbConn.Close();
202
}
203
}
204![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
205![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
206
/// 无条件删除操作,即删除表中所有记录
207
/// </summary>
208
/// <param name="strTableName">表名</param>
209
public static void DeleteAll(string strTableName)
210![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
211
Factory factory = Factory.GetInstance();
212
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
213
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
214
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
215
concreteDbConn.Open();
216
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
217
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
218
concreteDbCommand.Connection = concreteDbConn;
219
concreteDbCommand.Transaction = concreteDbTrans;
220
try
221![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
222
string strSql = "DELETE FROM " + strTableName;
223
concreteDbCommand.CommandText = strSql;
224
concreteDbCommand.ExecuteNonQuery();
225
concreteDbTrans.Commit();
226
}
227
catch
228![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
229
concreteDbTrans.Rollback();
230
throw;
231
}
232
finally
233![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
234
concreteDbConn.Close();
235
}
236
}
237![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
238![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
239
/// 条件删除操作
240
/// </summary>
241
/// <param name="strTableName">表名</param>
242
/// <param name="strCondition">条件</param>
243
public static void Delete(string strTableName, string strCondition)
244![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
245
Factory factory = Factory.GetInstance();
246
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
247
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
248
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
249
concreteDbConn.Open();
250
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
251
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
252
concreteDbCommand.Connection = concreteDbConn;
253
concreteDbCommand.Transaction = concreteDbTrans;
254
try
255![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
256
string strSql = "DELETE FROM " + strTableName + " WHERE " + strCondition;
257
concreteDbCommand.CommandText = strSql;
258
concreteDbCommand.ExecuteNonQuery();
259
concreteDbTrans.Commit();
260
}
261
catch
262![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
263
concreteDbTrans.Rollback();
264
throw;
265
}
266
finally
267![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
268
concreteDbConn.Close();
269
}
270
}
271![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
272![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
273
/// 无条件更新操作,即更新表中所有记录
274
/// </summary>
275
/// <param name="strTableName">表名</param>
276
/// <param name="strColumn">列名组</param>
277
/// <param name="strvalue">值组</param>
278
public static void UpdateAll(string strTableName, string[] strColumn, object[] strvalue)
279![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
280
Factory factory = Factory.GetInstance();
281
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
282
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
283
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
284
concreteDbConn.Open();
285
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
286
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
287
concreteDbCommand.Connection = concreteDbConn;
288
concreteDbCommand.Transaction = concreteDbTrans;
289
try
290![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
291
string strSql = "UPDATE " + strTableName + " SET ";
292
for (int i = 0; i < strColumn.Length - 1; i++)
293![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
294
strSql += (strColumn[i] + " = ’" + strvalue[i] + "’, ");
295
}
296
strSql += (strColumn[strColumn.Length - 1] + " = ’" + strvalue[strvalue.Length - 1] + "’ ");
297
concreteDbCommand.CommandText = strSql;
298
concreteDbCommand.ExecuteNonQuery();
299
concreteDbTrans.Commit();
300
}
301
catch
302![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
303
concreteDbTrans.Rollback();
304
throw;
305
}
306
finally
307![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
308
concreteDbConn.Close();
309
}
310
}
311![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
312![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
313
/// 条件更新操作
314
/// </summary>
315
/// <param name="strTableName">表名</param>
316
/// <param name="strColumn">列名组</param>
317
/// <param name="strvalue">值组</param>
318
/// <param name="strCondition">条件</param>
319
public static void Update(string strTableName, string[] strColumn, object[] strvalue, string strCondition)
320![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
321
Factory factory = Factory.GetInstance();
322
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
323
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
324
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
325
concreteDbConn.Open();
326
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
327
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
328
concreteDbCommand.Connection = concreteDbConn;
329
concreteDbCommand.Transaction = concreteDbTrans;
330
try
331![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
332
string strSql = "UPDATE " + strTableName + " SET ";
333
for (int i = 0; i < strColumn.Length - 1; i++)
334![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
335
strSql += (strColumn[i] + " = ’" + strvalue[i] + "’, ");
336
}
337
strSql += (strColumn[strColumn.Length - 1] + " = ’" + strvalue[strvalue.Length - 1] + "’ " + " WHERE " + strCondition);
338
concreteDbCommand.CommandText = strSql;
339
concreteDbCommand.ExecuteNonQuery();
340
concreteDbTrans.Commit();
341
}
342
catch
343![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
344
concreteDbTrans.Rollback();
345
throw;
346
}
347
finally
348![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
349
concreteDbConn.Close();
350
}
351
}
352![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
353![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
354
/// 多参数存储过程询操作
355
/// </summary>
356
/// <param name="strTableName">参数名列表</param>
357
/// <param name="strColumn">参数值列表</param>
358
/// <returns>查询所得结果</returns>
359
public static DataSet SelectAllProc(string strProcname, string[] strParam, object[] strValue)
360![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
361
DataSet ds = new DataSet();
362
Factory factory = Factory.GetInstance();
363
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
364
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
365
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
366
concreteDbConn.Open();
367
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
368
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
369
concreteDbCommand.Connection = concreteDbConn;
370
concreteDbCommand.Transaction = concreteDbTrans;
371
concreteDbCommand.CommandText = strProcname;
372
concreteDbCommand.CommandType = CommandType.StoredProcedure;
373
IDbDataAdapter concreteDbAdapter = abstractDbFactory.CreateDataAdapter();
374
try
375![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
376
concreteDbAdapter.SelectCommand = concreteDbCommand;
377
for (int i = 0; i < strParam.Length; i++)
378![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
379
IDataParameter adminid = abstractDbFactory.CreateDataParamter(strParam[i], strValue[i]);
380
concreteDbAdapter.SelectCommand.Parameters.Add(adminid);
381
}
382
concreteDbAdapter.Fill(ds);
383
concreteDbTrans.Commit();
384
}
385
catch
386![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
387
concreteDbTrans.Rollback();
388
ds.Clear();
389
throw;
390
}
391
finally
392![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
393
concreteDbConn.Close();
394
}
395
return ds;
396
}
397![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
398![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
399
/// 单参数存储过程调用
400
/// </summary>
401
/// <param name="strProcname">存储过程名</param>
402
/// <param name="strParam">参数名</param>
403
/// <param name="strValue">参数值</param>
404
/// <returns>查询结果</returns>
405
public static DataSet SelectProc(string strProcname, string strParam, string strValue)
406![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
407
DataSet ds = new DataSet();
408
Factory factory = Factory.GetInstance();
409
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
410
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
411
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
412
concreteDbConn.Open();
413
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
414
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
415
concreteDbCommand.Connection = concreteDbConn;
416
concreteDbCommand.Transaction = concreteDbTrans;
417
concreteDbCommand.CommandText = strProcname;
418
concreteDbCommand.CommandType = CommandType.StoredProcedure;
419
IDataParameter concreteDataParameter = abstractDbFactory.CreateDataParamter(strParam, strValue);
420
IDbDataAdapter concreteDbAdapter = abstractDbFactory.CreateDataAdapter();
421
try
422![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
423
concreteDbAdapter.SelectCommand = concreteDbCommand;
424
concreteDbAdapter.SelectCommand.Parameters.Add(concreteDataParameter);
425
concreteDbAdapter.Fill(ds);
426
concreteDbTrans.Commit();
427
}
428
catch
429![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
430
concreteDbTrans.Rollback();
431
ds.Clear();
432
throw;
433
}
434
finally
435![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
436
concreteDbConn.Close();
437
}
438
return ds;
439
}
440![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
441![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
442
/// 无返回值的存储过程
443
/// </summary>
444
/// <param name="strProcname">存储过程名</param>
445
/// <param name="strParam">参数列表</param>
446
/// <param name="strValue">参数值列表</param>
447
public static void NoReturnProc(string strProcname, string[] strParam, object[] strValue)
448![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
449
Factory factory = Factory.GetInstance();
450
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
451
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
452
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
453
concreteDbConn.Open();
454
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
455
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
456
concreteDbCommand.Connection = concreteDbConn;
457
concreteDbCommand.Transaction = concreteDbTrans;
458
concreteDbCommand.CommandText = strProcname;
459
concreteDbCommand.CommandType = CommandType.StoredProcedure;
460
try
461![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
462
for (int i = 0; i < strParam.Length; i++)
463![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
464
IDataParameter adminid = abstractDbFactory.CreateDataParamter(strParam[i], strValue[i]);
465
concreteDbCommand.Parameters.Add(adminid);
466
}
467
concreteDbCommand.ExecuteNonQuery();
468
concreteDbTrans.Commit();
469
}
470
catch
471![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
472
concreteDbTrans.Rollback();
473
throw;
474
}
475
finally
476![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
477
concreteDbConn.Close();
478
}
479
}
480![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
481![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
482
/// 用户登录验证
483
/// </summary>
484
/// <param name="strProcname">存储过程名</param>
485
/// <param name="strID">用户ID</param>
486
/// <param name="btPassword">密码</param>
487
/// <returns></returns>
488
public static DataSet Login(string strProcname, string strID, byte[] btPassword)
489![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
490
DataSet ds = new DataSet();
491
Factory factory = Factory.GetInstance();
492
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
493
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
494
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
495
concreteDbConn.Open();
496
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
497
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
498
concreteDbCommand.Connection = concreteDbConn;
499
concreteDbCommand.Transaction = concreteDbTrans;
500
concreteDbCommand.CommandText = strProcname;
501
concreteDbCommand.CommandType = CommandType.StoredProcedure;
502
IDbDataAdapter concreteDbAdapter = abstractDbFactory.CreateDataAdapter();
503
try
504![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
505
concreteDbAdapter.SelectCommand = concreteDbCommand;
506
IDataParameter concreteParametersID = abstractDbFactory.CreateDataParamter("@AdminID", SqlDbType.Char);
507
SqlParameter concreteParametersPW = new SqlParameter("@Password", SqlDbType.Binary);
508
concreteParametersID.Value = strID;
509
concreteParametersPW.Value = btPassword;
510
concreteDbAdapter.SelectCommand.Parameters.Add(concreteParametersID);
511
concreteDbAdapter.SelectCommand.Parameters.Add(concreteParametersPW);
512
concreteDbAdapter.Fill(ds);
513
concreteDbTrans.Commit();
514
}
515
catch
516![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
517
concreteDbTrans.Rollback();
518
ds.Clear();
519
throw;
520
}
521
finally
522![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
523
concreteDbConn.Close();
524
}
525
return ds;
526
}
527![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
528![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
529
/// 用户登录验证
530
/// </summary>
531
/// <param name="strProcname">存储过程名</param>
532
/// <param name="strID">用户ID</param>
533
/// <param name="btPassword">密码</param>
534
/// <returns></returns>
535
public static DataSet ULogin(string strProcname, string strID, byte[] btPassword)
536![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
537
DataSet ds = new DataSet();
538
Factory factory = Factory.GetInstance();
539
AbstractDbFactory abstractDbFactory = factory.CreateInstance();
540
IDbConnection concreteDbConn = abstractDbFactory.CreateConnection();
541
concreteDbConn.ConnectionString = abstractDbFactory.GetConnectionString();
542
concreteDbConn.Open();
543
IDbCommand concreteDbCommand = abstractDbFactory.CreateCommand();
544
IDbTransaction concreteDbTrans = abstractDbFactory.CreateTransaction(concreteDbConn);
545
concreteDbCommand.Connection = concreteDbConn;
546
concreteDbCommand.Transaction = concreteDbTrans;
547
concreteDbCommand.CommandText = strProcname;
548
concreteDbCommand.CommandType = CommandType.StoredProcedure;
549
IDbDataAdapter concreteDbAdapter = abstractDbFactory.CreateDataAdapter();
550
try
551![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
552
concreteDbAdapter.SelectCommand = concreteDbCommand;
553
IDataParameter concreteParametersID = abstractDbFactory.CreateDataParamter("@UserID", SqlDbType.Char);
554
SqlParameter concreteParametersPW = new SqlParameter("@Password", SqlDbType.Binary);
555
concreteParametersID.Value = strID;
556
concreteParametersPW.Value = btPassword;
557
concreteDbAdapter.SelectCommand.Parameters.Add(concreteParametersID);
558
concreteDbAdapter.SelectCommand.Parameters.Add(concreteParametersPW);
559
concreteDbAdapter.Fill(ds);
560
concreteDbTrans.Commit();
561
}
562
catch
563![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
564
concreteDbTrans.Rollback();
565
ds.Clear();
566
throw;
567
}
568
finally
569![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
570
concreteDbConn.Close();
571
}
572
return ds;
573
}
574
}
575
}
576
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
7
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
8
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
10
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
12
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
13
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
15
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
17
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
18
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
20
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
25
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
27
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
31
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
33
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
37
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
39
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
40
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
43
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
44
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
45
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
46
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
47
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
48
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
50
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
51
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
52
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
53
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
57
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
59
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
61
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
62
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
63
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
64
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
65
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
66
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
70
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
71
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
72
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
73
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
74
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
75
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
76
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
78
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
79
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
80
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
81
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
82
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
83
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
84
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
85
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
86
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
87
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
88
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
89
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
90
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
91
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
92
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
93
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
94
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
95
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
96
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
97
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
98
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
99
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
100
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
101
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
102
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
103
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
104
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
105
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
106
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
107
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
108
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
109
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
110
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
111
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
112
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
113
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
114
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
115
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
116
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
117
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
118
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
119
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
120
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
121
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
122
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
123
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
124
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
125
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
126
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
127
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
128
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
129
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
130
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
131
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
132
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
133
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
134
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
135
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
136
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
137
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
138
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
139
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
140
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
141
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
142
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
143
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
144
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
145
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
146
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
147
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
148
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
149
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
150
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
151
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
152
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
153
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
154
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
155
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
156
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
157
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
158
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
159
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
160
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
161
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
162
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
163
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
164
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
165
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
166
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
167
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
168
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
169
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
170
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
171
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
172
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
173
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
174
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
175
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
176
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
177
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
178
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
179
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
180
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
181
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
182
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
183
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
184
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
185
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
186
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
187
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
188
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
189
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
190
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
191
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
192
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
193
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
194
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
195
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
196
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
197
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
198
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
199
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
200
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
201
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
202
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
203
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
204
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
205
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
206
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
207
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
208
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
209
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
210
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
211
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
212
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
213
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
214
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
215
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
216
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
217
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
218
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
219
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
220
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
221
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
222
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
223
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
224
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
225
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
226
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
227
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
228
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
229
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
230
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
231
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
232
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
233
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
234
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
235
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
236
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
237
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
238
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
239
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
240
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
241
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
242
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
243
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
244
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
245
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
246
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
247
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
248
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
249
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
250
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
251
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
252
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
253
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
254
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
255
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
256
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
257
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
258
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
259
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
260
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
261
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
262
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
263
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
264
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
265
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
266
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
267
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
268
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
269
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
270
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
271
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
272
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
273
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
274
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
275
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
276
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
277
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
278
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
279
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
280
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
281
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
282
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
283
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
284
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
285
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
286
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
287
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
288
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
289
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
290
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
291
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
292
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
293
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
294
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
295
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
296
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
297
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
298
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
299
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
300
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
301
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
302
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
303
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
304
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
305
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
306
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
307
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
308
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
309
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
310
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
311
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
312
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
313
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
314
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
315
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
316
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
317
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
318
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
319
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
320
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
321
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
322
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
323
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
324
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
325
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
326
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
327
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
328
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
329
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
330
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
331
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
332
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
333
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
334
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
335
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
336
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
337
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
338
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
339
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
340
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
341
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
342
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
343
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
344
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
345
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
346
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
347
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
348
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
349
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
350
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
351
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
352
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
353
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
354
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
355
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
356
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
357
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
358
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
359
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
360
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
361
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
362
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
363
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
364
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
365
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
366
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
367
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
368
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
369
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
370
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
371
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
372
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
373
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
374
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
375
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
376
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
377
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
378
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
379
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
380
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
381
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
382
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
383
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
384
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
385
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
386
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
387
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
388
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
389
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
390
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
391
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
392
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
393
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
394
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
395
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
396
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
397
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
398
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
399
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
400
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
401
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
402
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
403
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
404
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
405
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
406
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
407
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
408
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
409
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
410
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
411
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
412
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
413
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
414
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
415
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
416
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
417
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
418
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
419
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
420
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
421
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
422
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
423
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
424
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
425
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
426
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
427
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
428
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
429
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
430
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
431
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
432
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
433
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
434
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
435
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
436
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
437
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
438
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
439
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
440
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
441
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
442
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
443
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
444
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
445
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
446
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
447
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
448
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
449
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
450
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
451
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
452
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
453
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
454
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
455
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
456
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
457
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
458
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
459
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
460
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
461
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
462
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
463
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
464
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
465
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
466
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
467
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
468
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
469
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
470
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
471
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
472
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
473
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
474
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
475
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
476
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
477
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
478
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
479
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
480
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
481
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
482
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
483
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
484
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
485
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
486
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
487
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
488
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
489
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
490
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
491
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
492
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
493
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
494
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
495
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
496
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
497
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
498
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
499
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
500
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
501
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
502
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
503
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
504
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
505
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
506
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
507
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
508
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
509
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
510
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
511
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
512
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
513
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
514
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
515
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
516
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
517
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
518
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
519
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
520
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
521
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
522
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
523
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
524
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
525
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
526
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
527
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
528
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
529
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
530
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
531
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
532
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
533
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
534
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
535
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
536
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
537
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
538
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
539
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
540
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
541
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
542
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
543
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
544
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
545
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
546
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
547
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
548
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
549
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
550
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
551
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
552
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
553
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
554
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
555
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
556
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
557
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
558
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
559
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
560
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
561
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
562
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
563
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
564
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
565
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
566
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
567
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
568
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
569
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
570
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
571
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
572
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
573
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
574
![ExpandedSubBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
575
![ExpandedBlockEnd.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
576
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)