一、数据库Test,
表:
create table Customers
(
CustId int IDENTITY(1,1) primary key,
CustName varchar(20) not null,
Address varchar(50),
Linkman varchar(20)
)
//insert into Cusomers values('ggg','xuzhou','zhangsan');
(
CustId int IDENTITY(1,1) primary key,
CustName varchar(20) not null,
Address varchar(50),
Linkman varchar(20)
)
//insert into Cusomers values('ggg','xuzhou','zhangsan');
二、配置文件web.config
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings>
<add name="TestConnectionString" connectionString="Data Source=GONGCHL;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=123" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
</system.web>
</configuration>
<configuration>
<appSettings/>
<connectionStrings>
<add name="TestConnectionString" connectionString="Data Source=GONGCHL;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=123" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
</system.web>
</configuration>
三、业务实体
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5namespace com.Model
6{
7 /// <summary>
8 /// 业务实体CustomerInfo
9 /// </summary>
10 [Serializable]
11 public class CustomerInfo
12 {
13
14 /// <summary>
15 /// 默认的构造函数
16 /// </summary>
17 public CustomerInfo() {}
18
19 /// <summary>
20 /// 有参数的构造函数
21 /// </summary>
22 /// <param name="custId">客户号</param>
23 /// <param name="custName">客户名称</param>
24 /// <param name="address">客户地址</param>
25 /// <param name="linkman">联系人</param>
26 public CustomerInfo(int custId, string custName, string address, string linkman)
27 {
28
29 this.custId = custId;
30 this.custName = custName;
31 this.address = address;
32 this.linkman = linkman;
33 }
34 private int custId;
35 public int CustId
36 {
37 get { return custId; }
38 set { custId = value; }
39 }
40
41 private string custName;
42 public string CustName
43 {
44 get { return custName; }
45 set { custName = value; }
46 }
47
48 private string address;
49 public string Address
50 {
51 get { return address; }
52 set { address = value; }
53 }
54
55 private string linkman;
56 public string Linkman
57 {
58 get { return linkman; }
59 set { linkman = value; }
60 }
61 }
62}
63
2using System.Collections.Generic;
3using System.Text;
4
5namespace com.Model
6{
7 /// <summary>
8 /// 业务实体CustomerInfo
9 /// </summary>
10 [Serializable]
11 public class CustomerInfo
12 {
13
14 /// <summary>
15 /// 默认的构造函数
16 /// </summary>
17 public CustomerInfo() {}
18
19 /// <summary>
20 /// 有参数的构造函数
21 /// </summary>
22 /// <param name="custId">客户号</param>
23 /// <param name="custName">客户名称</param>
24 /// <param name="address">客户地址</param>
25 /// <param name="linkman">联系人</param>
26 public CustomerInfo(int custId, string custName, string address, string linkman)
27 {
28
29 this.custId = custId;
30 this.custName = custName;
31 this.address = address;
32 this.linkman = linkman;
33 }
34 private int custId;
35 public int CustId
36 {
37 get { return custId; }
38 set { custId = value; }
39 }
40
41 private string custName;
42 public string CustName
43 {
44 get { return custName; }
45 set { custName = value; }
46 }
47
48 private string address;
49 public string Address
50 {
51 get { return address; }
52 set { address = value; }
53 }
54
55 private string linkman;
56 public string Linkman
57 {
58 get { return linkman; }
59 set { linkman = value; }
60 }
61 }
62}
63
四、数据访问层
类:SqlHelper
1//===============================================================================
2// .NET数据访问通用程序,来自Microsoft公司
3// 更多信息参见
4// http://msdn.microsoft.com/library/en-us/dnbda/html/daab-rm.asp
5//===============================================================================
6
7using System;
8using System.Configuration;
9using System.Data;
10using System.Data.SqlClient;
11using System.Collections;
12
13namespace com.DataAccess
14{
15
16 /// <summary>
17 /// SqlHelper类提供很高的数据访问性能,
18 /// 使用SqlClient类的通用定义.
19 /// </summary>
20 public abstract class SqlHelper
21 {
22
23 //定义数据库连接串
24 public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString;
25 //public static readonly string ConnectionStringInventoryDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString2"].ConnectionString;
26 //public static readonly string ConnectionStringOrderDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString3"].ConnectionString;
27 //public static readonly string ConnectionStringProfile = ConfigurationManager.ConnectionStrings["SQLProfileConnString"].ConnectionString;
28
29 // 存贮Cache缓存的Hashtable集合
30 private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
31
32 /// <summary>
33 /// 使用连接字符串,执行一个SqlCommand命令(没有记录返回)
34 /// 使用提供的参数集.
35 /// </summary>
36 /// <remarks>
37 /// 示例:
38 /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
39 /// </remarks>
40 /// <param name="connectionString">一个有效的SqlConnection连接串</param>
41 /// <param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param>
42 /// <param name="commandText">存贮过程名称或是一个T-SQL语句串</param>
43 /// <param name="commandParameters">执行命令的参数集</param>
44 /// <returns>受此命令影响的行数</returns>
45 public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
46 {
47
48 SqlCommand cmd = new SqlCommand();
49
50 using (SqlConnection conn = new SqlConnection(connectionString))
51 {
52 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
53 int val = cmd.ExecuteNonQuery();
54 cmd.Parameters.Clear();
55 return val;
56 }
57 }
58
59 /// <summary>
60 /// 在一个存在的连接上执行数据库的命令操作
61 /// 使用提供的参数集.
62 /// </summary>
63 /// <remarks>
64 /// e.g.:
65 /// int result = ExecuteNonQuery(connection, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
66 /// </remarks>
67 /// <param name="conn">一个存在的数据库连接对象</param>
68 /// <param name="commandType">命令类型CommandType (stored procedure, text, etc.)</param>
69 /// <param name="commandText">存贮过程名称或是一个T-SQL语句串</param>
70 /// <param name="commandParameters">执行命令的参数集</param>
71 /// <returns>受此命令影响的行数</returns>
72 public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
73 {
74
75 SqlCommand cmd = new SqlCommand();
76
77 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
78 int val = cmd.ExecuteNonQuery();
79 cmd.Parameters.Clear();
80 return val;
81 }
82
83 /// <summary>
84 /// 在一个事务的连接上执行数据库的命令操作
85 /// 使用提供的参数集.
86 /// </summary>
87 /// <remarks>
88 /// e.g.:
89 /// int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
90 /// </remarks>
91 /// <param name="trans">一个存在的事务</param>
92 /// <param name="commandType">命令类型CommandType (stored procedure, text, etc.)</param>
93 /// <param name="commandText">存贮过程名称或是一个T-SQL语句串</param>
94 /// <param name="commandParameters">执行命令的参数集</param>
95 /// <returns>受此命令影响的行数</returns>
96 public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
97 {
98 SqlCommand cmd = new SqlCommand();
99 PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
100 int val = cmd.ExecuteNonQuery();
101 cmd.Parameters.Clear();
102 return val;
103 }
104
105 /// <summary>
106 /// 在一个连接串上执行一个命令,返回一个SqlDataReader对象
107 /// 使用提供的参数.
108 /// </summary>
109 /// <remarks>
110 /// e.g.:
111 /// SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
112 /// </remarks>
113 /// <param name="connectionString">一个有效的SqlConnection连接串</param>
114 /// <param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param>
115 /// <param name="commandText">存贮过程名称或是一个T-SQL语句串</param>
116 /// <param name="commandParameters">执行命令的参数集</param>
117 /// <returns>一个结果集对象SqlDataReader</returns>
118 public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
119 {
120 SqlCommand cmd = new SqlCommand();
121 SqlConnection conn = new SqlConnection(connectionString);
122
123 // 如果不存在要查询的对象,则发生异常
124 // 连接要关闭
125 // CommandBehavior.CloseConnection在异常时不发生作用
126 try
127 {
128 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
129 SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
130 cmd.Parameters.Clear();
131 return rdr;
132 }
133 catch
134 {
135 conn.Close();
136 throw;
137 }
138 }
139
140 /// <summary>
141 /// 在一个连接串上执行一个命令,返回表中第一行,第一列的值
142 /// 使用提供的参数.
143 /// </summary>
144 /// <remarks>
145 /// e.g.:
146 /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
147 /// </remarks>
148 /// <param name="connectionString">一个有效的SqlConnection连接串</param>
149 /// <param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param>
150 /// <param name="commandText">存贮过程名称或是一个T-SQL语句串</param>
151 /// <param name="commandParameters">执行命令的参数集</param> /// <returns>返回的对象,在使用时记得类型转换</returns>
152 public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
153 {
154 SqlCommand cmd = new SqlCommand();
155
156 using (SqlConnection connection = new SqlConnection(connectionString))
157 {
158 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
159 object val = cmd.ExecuteScalar();
160 cmd.Parameters.Clear();
161 return val;
162 }
163 }
164
165 /// <summary>
166 /// 在一个连接上执行一个命令,返回表中第一行,第一列的值
167 /// 使用提供的参数.
168 /// </summary>
169 /// <remarks>
170 /// e.g.:
171 /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
172 /// </remarks>
173 /// <param name="connectionString">一个有效的SqlConnection连接</param>
174 /// <param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param>
175 /// <param name="commandText">存贮过程名称或是一个T-SQL语句串</param>
176 /// <param name="commandParameters">执行命令的参数集</param> /// <returns>返回的对象,在使用时记得类型转换</returns>
177 public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
178 {
179
180 SqlCommand cmd = new SqlCommand();
181
182 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
183 object val = cmd.ExecuteScalar();
184 cmd.Parameters.Clear();
185 return val;
186 }
187
188 /// <summary>
189 /// 在缓存中添加参数数组
190 /// </summary>
191 /// <param name="cacheKey">参数的Key</param>
192 /// <param name="cmdParms">参数数组</param>
193 public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters)
194 {
195 parmCache[cacheKey] = commandParameters;
196 }
197
198 /// <summary>
199 /// 提取缓存的参数数组
200 /// </summary>
201 /// <param name="cacheKey">查找缓存的key</param>
202 /// <returns>返回被缓存的参数数组</returns>
203 public static SqlParameter[] GetCachedParameters(string cacheKey)
204 {
205 SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];
206
207 if (cachedParms == null)
208 return null;
209
210 SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];
211
212 for (int i = 0, j = cachedParms.Length; i < j; i++)
213 clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();
214
215 return clonedParms;
216 }
217
218 /// <summary>
219 /// 提供一个SqlCommand对象的设置
220 /// </summary>
221 /// <param name="cmd">SqlCommand对象</param>
222 /// <param name="conn">SqlConnection 对象</param>
223 /// <param name="trans">SqlTransaction 对象</param>
224 /// <param name="cmdType">CommandType 如存贮过程,T-SQL</param>
225 /// <param name="cmdText">存贮过程名或查询串</param>
226 /// <param name="cmdParms">命令中用到的参数集</param>
227 private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
228 {
229
230 if (conn.State != ConnectionState.Open)
231 conn.Open();
232
233 cmd.Connection = conn;
234 cmd.CommandText = cmdText;
235
236 if (trans != null)
237 cmd.Transaction = trans;
238
239 cmd.CommandType = cmdType;
240
241 if (cmdParms != null)
242 {
243 foreach (SqlParameter parm in cmdParms)
244 cmd.Parameters.Add(parm);
245 }
246 }
247 }
248}
249
250
2// .NET数据访问通用程序,来自Microsoft公司
3// 更多信息参见
4// http://msdn.microsoft.com/library/en-us/dnbda/html/daab-rm.asp
5//===============================================================================
6
7using System;
8using System.Configuration;
9using System.Data;
10using System.Data.SqlClient;
11using System.Collections;
12
13namespace com.DataAccess
14{
15
16 /// <summary>
17 /// SqlHelper类提供很高的数据访问性能,
18 /// 使用SqlClient类的通用定义.
19 /// </summary>
20 public abstract class SqlHelper
21 {
22
23 //定义数据库连接串
24 public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString;
25 //public static readonly string ConnectionStringInventoryDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString2"].ConnectionString;
26 //public static readonly string ConnectionStringOrderDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString3"].ConnectionString;
27 //public static readonly string ConnectionStringProfile = ConfigurationManager.ConnectionStrings["SQLProfileConnString"].ConnectionString;
28
29 // 存贮Cache缓存的Hashtable集合
30 private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
31
32 /// <summary>
33 /// 使用连接字符串,执行一个SqlCommand命令(没有记录返回)
34 /// 使用提供的参数集.
35 /// </summary>
36 /// <remarks>
37 /// 示例:
38 /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
39 /// </remarks>
40 /// <param name="connectionString">一个有效的SqlConnection连接串</param>
41 /// <param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param>
42 /// <param name="commandText">存贮过程名称或是一个T-SQL语句串</param>
43 /// <param name="commandParameters">执行命令的参数集</param>
44 /// <returns>受此命令影响的行数</returns>
45 public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
46 {
47
48 SqlCommand cmd = new SqlCommand();
49
50 using (SqlConnection conn = new SqlConnection(connectionString))
51 {
52 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
53 int val = cmd.ExecuteNonQuery();
54 cmd.Parameters.Clear();
55 return val;
56 }
57 }
58
59 /// <summary>
60 /// 在一个存在的连接上执行数据库的命令操作
61 /// 使用提供的参数集.
62 /// </summary>
63 /// <remarks>
64 /// e.g.:
65 /// int result = ExecuteNonQuery(connection, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
66 /// </remarks>
67 /// <param name="conn">一个存在的数据库连接对象</param>
68 /// <param name="commandType">命令类型CommandType (stored procedure, text, etc.)</param>
69 /// <param name="commandText">存贮过程名称或是一个T-SQL语句串</param>
70 /// <param name="commandParameters">执行命令的参数集</param>
71 /// <returns>受此命令影响的行数</returns>
72 public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
73 {
74
75 SqlCommand cmd = new SqlCommand();
76
77 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
78 int val = cmd.ExecuteNonQuery();
79 cmd.Parameters.Clear();
80 return val;
81 }
82
83 /// <summary>
84 /// 在一个事务的连接上执行数据库的命令操作
85 /// 使用提供的参数集.
86 /// </summary>
87 /// <remarks>
88 /// e.g.:
89 /// int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
90 /// </remarks>
91 /// <param name="trans">一个存在的事务</param>
92 /// <param name="commandType">命令类型CommandType (stored procedure, text, etc.)</param>
93 /// <param name="commandText">存贮过程名称或是一个T-SQL语句串</param>
94 /// <param name="commandParameters">执行命令的参数集</param>
95 /// <returns>受此命令影响的行数</returns>
96 public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
97 {
98 SqlCommand cmd = new SqlCommand();
99 PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
100 int val = cmd.ExecuteNonQuery();
101 cmd.Parameters.Clear();
102 return val;
103 }
104
105 /// <summary>
106 /// 在一个连接串上执行一个命令,返回一个SqlDataReader对象
107 /// 使用提供的参数.
108 /// </summary>
109 /// <remarks>
110 /// e.g.:
111 /// SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
112 /// </remarks>
113 /// <param name="connectionString">一个有效的SqlConnection连接串</param>
114 /// <param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param>
115 /// <param name="commandText">存贮过程名称或是一个T-SQL语句串</param>
116 /// <param name="commandParameters">执行命令的参数集</param>
117 /// <returns>一个结果集对象SqlDataReader</returns>
118 public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
119 {
120 SqlCommand cmd = new SqlCommand();
121 SqlConnection conn = new SqlConnection(connectionString);
122
123 // 如果不存在要查询的对象,则发生异常
124 // 连接要关闭
125 // CommandBehavior.CloseConnection在异常时不发生作用
126 try
127 {
128 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
129 SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
130 cmd.Parameters.Clear();
131 return rdr;
132 }
133 catch
134 {
135 conn.Close();
136 throw;
137 }
138 }
139
140 /// <summary>
141 /// 在一个连接串上执行一个命令,返回表中第一行,第一列的值
142 /// 使用提供的参数.
143 /// </summary>
144 /// <remarks>
145 /// e.g.:
146 /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
147 /// </remarks>
148 /// <param name="connectionString">一个有效的SqlConnection连接串</param>
149 /// <param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param>
150 /// <param name="commandText">存贮过程名称或是一个T-SQL语句串</param>
151 /// <param name="commandParameters">执行命令的参数集</param> /// <returns>返回的对象,在使用时记得类型转换</returns>
152 public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
153 {
154 SqlCommand cmd = new SqlCommand();
155
156 using (SqlConnection connection = new SqlConnection(connectionString))
157 {
158 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
159 object val = cmd.ExecuteScalar();
160 cmd.Parameters.Clear();
161 return val;
162 }
163 }
164
165 /// <summary>
166 /// 在一个连接上执行一个命令,返回表中第一行,第一列的值
167 /// 使用提供的参数.
168 /// </summary>
169 /// <remarks>
170 /// e.g.:
171 /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
172 /// </remarks>
173 /// <param name="connectionString">一个有效的SqlConnection连接</param>
174 /// <param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param>
175 /// <param name="commandText">存贮过程名称或是一个T-SQL语句串</param>
176 /// <param name="commandParameters">执行命令的参数集</param> /// <returns>返回的对象,在使用时记得类型转换</returns>
177 public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
178 {
179
180 SqlCommand cmd = new SqlCommand();
181
182 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
183 object val = cmd.ExecuteScalar();
184 cmd.Parameters.Clear();
185 return val;
186 }
187
188 /// <summary>
189 /// 在缓存中添加参数数组
190 /// </summary>
191 /// <param name="cacheKey">参数的Key</param>
192 /// <param name="cmdParms">参数数组</param>
193 public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters)
194 {
195 parmCache[cacheKey] = commandParameters;
196 }
197
198 /// <summary>
199 /// 提取缓存的参数数组
200 /// </summary>
201 /// <param name="cacheKey">查找缓存的key</param>
202 /// <returns>返回被缓存的参数数组</returns>
203 public static SqlParameter[] GetCachedParameters(string cacheKey)
204 {
205 SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];
206
207 if (cachedParms == null)
208 return null;
209
210 SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];
211
212 for (int i = 0, j = cachedParms.Length; i < j; i++)
213 clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();
214
215 return clonedParms;
216 }
217
218 /// <summary>
219 /// 提供一个SqlCommand对象的设置
220 /// </summary>
221 /// <param name="cmd">SqlCommand对象</param>
222 /// <param name="conn">SqlConnection 对象</param>
223 /// <param name="trans">SqlTransaction 对象</param>
224 /// <param name="cmdType">CommandType 如存贮过程,T-SQL</param>
225 /// <param name="cmdText">存贮过程名或查询串</param>
226 /// <param name="cmdParms">命令中用到的参数集</param>
227 private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
228 {
229
230 if (conn.State != ConnectionState.Open)
231 conn.Open();
232
233 cmd.Connection = conn;
234 cmd.CommandText = cmdText;
235
236 if (trans != null)
237 cmd.Transaction = trans;
238
239 cmd.CommandType = cmdType;
240
241 if (cmdParms != null)
242 {
243 foreach (SqlParameter parm in cmdParms)
244 cmd.Parameters.Add(parm);
245 }
246 }
247 }
248}
249
250
类:Customer
1using System;
2using System.Data.SqlClient;
3using System.Data;
4using System.Text;
5using System.Collections.Generic;
6using com.Model;
7
8namespace com.DataAccess
9{
10 /// <summary>
11 /// 对客户表的所有数据访问操作
12 /// </summary>
13 public class Customer
14 {
15
16 //静态常量,参数名,T-SQL串
17 private const string SQL_SELECT_CUSTOMER_BY_ID =
18 "SELECT CustId, CustName, Address, Linkman FROM CUSTOMERS WHERE CustID = @CustId";
19 private const string SQL_SELECT_CUSTOMER_BY_NAME =
20 "SELECT CustId, CustName, Address, Linkman FROM CUSTOMERS WHERE CustName = @CustName";
21 private const string SQL_SELECT_CUSTOMER_BY_ALL =
22 "SELECT CustId, CustName, Address, Linkman FROM CUSTOMERS";
23 private const string SQL_UPDATE_CUSTOMER_BY_ID =
24 "UPDATE CUSTOMERS SET CustName=@CustName, Address=@Address, Linkman = @Linkman WHERE CustId=@CustId ";
25 private const string SQL_DELETE_CUSTOMER_BY_ID =
26 "DELETE CUSTOMERS WHERE CustId=@CustId ";
27 private const string SQL_INSERT_CUSTOMER =
28 "Declare @ID int;INSERT INTO CUSTOMERS VALUES(@CustName, @Address, @Linkman);SELECT @ID = @@IDENTITY; SELECT @ID";
29
30 private const string PARM_CUSTOMERID = "@CustId";
31 private const string PARM_CUSTOMERNAME = "@CustName";
32 private const string PARM_ADDRESS = "@Address";
33 private const string PARM_LINKMAN = "@Linkman";
34
35 /// <summary>
36 /// 按客户ID查询
37 /// </summary>
38 /// <param name="custId">客户号</param>
39 /// <returns>客户对象</returns>
40 public CustomerInfo GetCustomerById(int custId)
41 {
42 CustomerInfo customerInfo=null;
43 SqlParameter parm = new SqlParameter(PARM_CUSTOMERID, SqlDbType.Int);
44 parm.Value = custId;
45
46 //按客户号参数执行查询得到一个客户信息
47 using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CUSTOMER_BY_ID, parm))
48 {
49 if (rdr.Read())
50 customerInfo = new CustomerInfo(rdr.GetInt32(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3));
51 }
52 return customerInfo;
53 }
54
55 /// <summary>
56 /// 按客户名称查询
57 /// </summary>
58 /// <param name="custName">客户名称</param>
59 /// <returns>客户对象</returns>
60 public CustomerInfo GetCustomerByName(string custName)
61 {
62 CustomerInfo customerInfo = null;
63 SqlParameter parm = new SqlParameter(PARM_CUSTOMERNAME, SqlDbType.VarChar,20);
64 parm.Value = custName;
65
66 //按客户号参数执行查询得到一个客户信息
67 using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CUSTOMER_BY_NAME, parm))
68 {
69 if (rdr.Read())
70 customerInfo = new CustomerInfo(rdr.GetInt32(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3));
71 }
72 return customerInfo;
73 }
74
75 /// <summary>
76 /// 查询所有客户信息
77 /// 结果为IList
78 /// </summary>
79 /// <returns>一个客户集合</returns>
80 public IList<CustomerInfo> GetCusomersByAll()
81 {
82
83 IList<CustomerInfo> customers = new List<CustomerInfo>();
84
85 //Finally execute the query
86 using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CUSTOMER_BY_ALL, null))
87 {
88 while (rdr.Read())
89 {
90 CustomerInfo customerInfo = new CustomerInfo(rdr.GetInt32(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3));
91 customers.Add(customerInfo);
92 }
93 }
94
95 return customers;
96 }
97 /// <summary>
98 /// 插入一个客户信息
99 /// </summary>
100 /// <param name="customer">客户对象CustomerInfo</param>
101 /// <returns>bool类型,true or false</returns>
102 public bool InsertCustomer(CustomerInfo customerInfo)
103 {
104 SqlParameter[] paras = new SqlParameter[3];
105 paras[0]=new SqlParameter(PARM_CUSTOMERNAME,SqlDbType.VarChar,20);
106 paras[0].Value=customerInfo.CustName;
107 paras[1]=new SqlParameter(PARM_ADDRESS,SqlDbType.VarChar,50);
108 paras[1].Value=customerInfo.Address;
109 paras[2]=new SqlParameter(PARM_LINKMAN,SqlDbType.VarChar,20);
110 paras[2].Value=customerInfo.Linkman;
111
112 using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_INSERT_CUSTOMER, paras))
113 {
114 if (rdr.Read())
115 customerInfo.CustId = rdr.GetInt32(0);
116 else
117 return false;
118 }
119 return true;
120 }
121
122 /// <summary>
123 /// 修改一个客户信息
124 /// </summary>
125 /// <param name="customer">客户对象CustomerInfo</param>
126 /// <returns>bool类型,true or false</returns>
127 public bool UpdateCustomerByID(CustomerInfo customerInfo)
128 {
129 SqlParameter[] paras = new SqlParameter[4];
130 paras[0] = new SqlParameter(PARM_CUSTOMERNAME, SqlDbType.VarChar, 20);
131 paras[0].Value = customerInfo.CustName;
132 paras[1] = new SqlParameter(PARM_ADDRESS, SqlDbType.VarChar, 50);
133 paras[1].Value = customerInfo.Address;
134 paras[2] = new SqlParameter(PARM_LINKMAN, SqlDbType.VarChar, 20);
135 paras[2].Value = customerInfo.Linkman;
136 paras[3] = new SqlParameter(PARM_CUSTOMERID, SqlDbType.Int);
137 paras[3].Value = customerInfo.CustId;
138
139 int row = SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_UPDATE_CUSTOMER_BY_ID, paras);
140 if (row == 0)
141 return false;
142 return true;
143 }
144
145 /// <summary>
146 /// 按ID删除一个客户信息
147 /// </summary>
148 /// <param name="custId">客户号</param>
149 /// <returns>bool类型,true or false</returns>
150 public bool DeleteCustomerByID(int custId)
151 {
152 SqlParameter para = new SqlParameter(PARM_CUSTOMERID, SqlDbType.Int);
153 para.Value = custId;
154
155 int row = SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_DELETE_CUSTOMER_BY_ID, para);
156 if (row == 0)
157 return false;
158 return true;
159 }
160
161 }
162}
2using System.Data.SqlClient;
3using System.Data;
4using System.Text;
5using System.Collections.Generic;
6using com.Model;
7
8namespace com.DataAccess
9{
10 /// <summary>
11 /// 对客户表的所有数据访问操作
12 /// </summary>
13 public class Customer
14 {
15
16 //静态常量,参数名,T-SQL串
17 private const string SQL_SELECT_CUSTOMER_BY_ID =
18 "SELECT CustId, CustName, Address, Linkman FROM CUSTOMERS WHERE CustID = @CustId";
19 private const string SQL_SELECT_CUSTOMER_BY_NAME =
20 "SELECT CustId, CustName, Address, Linkman FROM CUSTOMERS WHERE CustName = @CustName";
21 private const string SQL_SELECT_CUSTOMER_BY_ALL =
22 "SELECT CustId, CustName, Address, Linkman FROM CUSTOMERS";
23 private const string SQL_UPDATE_CUSTOMER_BY_ID =
24 "UPDATE CUSTOMERS SET CustName=@CustName, Address=@Address, Linkman = @Linkman WHERE CustId=@CustId ";
25 private const string SQL_DELETE_CUSTOMER_BY_ID =
26 "DELETE CUSTOMERS WHERE CustId=@CustId ";
27 private const string SQL_INSERT_CUSTOMER =
28 "Declare @ID int;INSERT INTO CUSTOMERS VALUES(@CustName, @Address, @Linkman);SELECT @ID = @@IDENTITY; SELECT @ID";
29
30 private const string PARM_CUSTOMERID = "@CustId";
31 private const string PARM_CUSTOMERNAME = "@CustName";
32 private const string PARM_ADDRESS = "@Address";
33 private const string PARM_LINKMAN = "@Linkman";
34
35 /// <summary>
36 /// 按客户ID查询
37 /// </summary>
38 /// <param name="custId">客户号</param>
39 /// <returns>客户对象</returns>
40 public CustomerInfo GetCustomerById(int custId)
41 {
42 CustomerInfo customerInfo=null;
43 SqlParameter parm = new SqlParameter(PARM_CUSTOMERID, SqlDbType.Int);
44 parm.Value = custId;
45
46 //按客户号参数执行查询得到一个客户信息
47 using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CUSTOMER_BY_ID, parm))
48 {
49 if (rdr.Read())
50 customerInfo = new CustomerInfo(rdr.GetInt32(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3));
51 }
52 return customerInfo;
53 }
54
55 /// <summary>
56 /// 按客户名称查询
57 /// </summary>
58 /// <param name="custName">客户名称</param>
59 /// <returns>客户对象</returns>
60 public CustomerInfo GetCustomerByName(string custName)
61 {
62 CustomerInfo customerInfo = null;
63 SqlParameter parm = new SqlParameter(PARM_CUSTOMERNAME, SqlDbType.VarChar,20);
64 parm.Value = custName;
65
66 //按客户号参数执行查询得到一个客户信息
67 using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CUSTOMER_BY_NAME, parm))
68 {
69 if (rdr.Read())
70 customerInfo = new CustomerInfo(rdr.GetInt32(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3));
71 }
72 return customerInfo;
73 }
74
75 /// <summary>
76 /// 查询所有客户信息
77 /// 结果为IList
78 /// </summary>
79 /// <returns>一个客户集合</returns>
80 public IList<CustomerInfo> GetCusomersByAll()
81 {
82
83 IList<CustomerInfo> customers = new List<CustomerInfo>();
84
85 //Finally execute the query
86 using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CUSTOMER_BY_ALL, null))
87 {
88 while (rdr.Read())
89 {
90 CustomerInfo customerInfo = new CustomerInfo(rdr.GetInt32(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3));
91 customers.Add(customerInfo);
92 }
93 }
94
95 return customers;
96 }
97 /// <summary>
98 /// 插入一个客户信息
99 /// </summary>
100 /// <param name="customer">客户对象CustomerInfo</param>
101 /// <returns>bool类型,true or false</returns>
102 public bool InsertCustomer(CustomerInfo customerInfo)
103 {
104 SqlParameter[] paras = new SqlParameter[3];
105 paras[0]=new SqlParameter(PARM_CUSTOMERNAME,SqlDbType.VarChar,20);
106 paras[0].Value=customerInfo.CustName;
107 paras[1]=new SqlParameter(PARM_ADDRESS,SqlDbType.VarChar,50);
108 paras[1].Value=customerInfo.Address;
109 paras[2]=new SqlParameter(PARM_LINKMAN,SqlDbType.VarChar,20);
110 paras[2].Value=customerInfo.Linkman;
111
112 using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_INSERT_CUSTOMER, paras))
113 {
114 if (rdr.Read())
115 customerInfo.CustId = rdr.GetInt32(0);
116 else
117 return false;
118 }
119 return true;
120 }
121
122 /// <summary>
123 /// 修改一个客户信息
124 /// </summary>
125 /// <param name="customer">客户对象CustomerInfo</param>
126 /// <returns>bool类型,true or false</returns>
127 public bool UpdateCustomerByID(CustomerInfo customerInfo)
128 {
129 SqlParameter[] paras = new SqlParameter[4];
130 paras[0] = new SqlParameter(PARM_CUSTOMERNAME, SqlDbType.VarChar, 20);
131 paras[0].Value = customerInfo.CustName;
132 paras[1] = new SqlParameter(PARM_ADDRESS, SqlDbType.VarChar, 50);
133 paras[1].Value = customerInfo.Address;
134 paras[2] = new SqlParameter(PARM_LINKMAN, SqlDbType.VarChar, 20);
135 paras[2].Value = customerInfo.Linkman;
136 paras[3] = new SqlParameter(PARM_CUSTOMERID, SqlDbType.Int);
137 paras[3].Value = customerInfo.CustId;
138
139 int row = SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_UPDATE_CUSTOMER_BY_ID, paras);
140 if (row == 0)
141 return false;
142 return true;
143 }
144
145 /// <summary>
146 /// 按ID删除一个客户信息
147 /// </summary>
148 /// <param name="custId">客户号</param>
149 /// <returns>bool类型,true or false</returns>
150 public bool DeleteCustomerByID(int custId)
151 {
152 SqlParameter para = new SqlParameter(PARM_CUSTOMERID, SqlDbType.Int);
153 para.Value = custId;
154
155 int row = SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_DELETE_CUSTOMER_BY_ID, para);
156 if (row == 0)
157 return false;
158 return true;
159 }
160
161 }
162}
五、业务逻辑层
1using System;
2using System.Collections.Generic;
3using System.Text;
4using com.DataAccess;
5using com.Model;
6using com.BusinessRule;
7
8namespace com.BusinessLogic
9{
10 public class CustomerLogic
11 {
12 /// <summary>
13 /// 插入一个客户信息
14 /// </summary>
15 /// <param name="custId">客户号</param>
16 /// <param name="custName">客户名称</param>
17 /// <param name="address">客户地址</param>
18 /// <param name="linkman">联系人</param>
19 /// <returns>bool类型,true or false</returns>
20 public bool InsertCustomer(int custId,string custName, string address, string linkman)
21 {
22 if (CustomerRule.IsExistCustomerName(custName))
23 return false;
24 Customer customer = new Customer();
25 CustomerInfo customerInfo = new CustomerInfo(custId,custName,address,linkman);
26 return customer.InsertCustomer(customerInfo);
27 }
28
29 /// <summary>
30 /// 插入一个客户信息
31 /// </summary>
32 /// <param name="custName">客户名称</param>
33 /// <param name="address">客户地址</param>
34 /// <param name="linkman">联系人</param>
35 /// <returns>bool类型,true or false</returns>
36 public bool InsertCustomer(string custName, string address, string linkman)
37 {
38 if (CustomerRule.IsExistCustomerName(custName))
39 return false;
40 Customer customer = new Customer();
41 CustomerInfo customerInfo = new CustomerInfo(0, custName, address, linkman);
42 return customer.InsertCustomer(customerInfo);
43 }
44
45 /// <summary>
46 /// 修改一个客户信息
47 /// </summary>
48 /// <param name="custId">客户号</param>
49 /// <param name="custName">客户名称</param>
50 /// <param name="address">客户地址</param>
51 /// <param name="linkman">联系人</param>
52 /// <returns>bool类型,true or false</returns>
53 public bool UpdateCustomer(int custId,string custName, string address, string linkman)
54 {
55 Customer customer = new Customer();
56 CustomerInfo customerInfo = new CustomerInfo(custId, custName, address, linkman);
57 return customer.UpdateCustomerByID(customerInfo);
58 }
59
60 /// <summary>
61 /// 按ID删除一个客户信息
62 /// </summary>
63 /// <param name="custId">客户号</param>
64 /// <returns>bool类型,true or false</returns>
65 public bool DeleteCustomerByID(int custId)
66 {
67 Customer customer = new Customer();
68 return customer.DeleteCustomerByID(custId);
69 }
70
71
72 /// <summary>
73 /// 查询所有客户信息
74 /// 结果为IList
75 /// </summary>
76 /// <returns>一个客户集合</returns>
77 public IList<CustomerInfo> GetCustomersByAll()
78 {
79 Customer customer = new Customer();
80 return customer.GetCusomersByAll();
81 }
82 }
83}
84
2using System.Collections.Generic;
3using System.Text;
4using com.DataAccess;
5using com.Model;
6using com.BusinessRule;
7
8namespace com.BusinessLogic
9{
10 public class CustomerLogic
11 {
12 /// <summary>
13 /// 插入一个客户信息
14 /// </summary>
15 /// <param name="custId">客户号</param>
16 /// <param name="custName">客户名称</param>
17 /// <param name="address">客户地址</param>
18 /// <param name="linkman">联系人</param>
19 /// <returns>bool类型,true or false</returns>
20 public bool InsertCustomer(int custId,string custName, string address, string linkman)
21 {
22 if (CustomerRule.IsExistCustomerName(custName))
23 return false;
24 Customer customer = new Customer();
25 CustomerInfo customerInfo = new CustomerInfo(custId,custName,address,linkman);
26 return customer.InsertCustomer(customerInfo);
27 }
28
29 /// <summary>
30 /// 插入一个客户信息
31 /// </summary>
32 /// <param name="custName">客户名称</param>
33 /// <param name="address">客户地址</param>
34 /// <param name="linkman">联系人</param>
35 /// <returns>bool类型,true or false</returns>
36 public bool InsertCustomer(string custName, string address, string linkman)
37 {
38 if (CustomerRule.IsExistCustomerName(custName))
39 return false;
40 Customer customer = new Customer();
41 CustomerInfo customerInfo = new CustomerInfo(0, custName, address, linkman);
42 return customer.InsertCustomer(customerInfo);
43 }
44
45 /// <summary>
46 /// 修改一个客户信息
47 /// </summary>
48 /// <param name="custId">客户号</param>
49 /// <param name="custName">客户名称</param>
50 /// <param name="address">客户地址</param>
51 /// <param name="linkman">联系人</param>
52 /// <returns>bool类型,true or false</returns>
53 public bool UpdateCustomer(int custId,string custName, string address, string linkman)
54 {
55 Customer customer = new Customer();
56 CustomerInfo customerInfo = new CustomerInfo(custId, custName, address, linkman);
57 return customer.UpdateCustomerByID(customerInfo);
58 }
59
60 /// <summary>
61 /// 按ID删除一个客户信息
62 /// </summary>
63 /// <param name="custId">客户号</param>
64 /// <returns>bool类型,true or false</returns>
65 public bool DeleteCustomerByID(int custId)
66 {
67 Customer customer = new Customer();
68 return customer.DeleteCustomerByID(custId);
69 }
70
71
72 /// <summary>
73 /// 查询所有客户信息
74 /// 结果为IList
75 /// </summary>
76 /// <returns>一个客户集合</returns>
77 public IList<CustomerInfo> GetCustomersByAll()
78 {
79 Customer customer = new Customer();
80 return customer.GetCusomersByAll();
81 }
82 }
83}
84
六、业务规则层
1using System;
2using System.Collections.Generic;
3using System.Text;
4using com.DataAccess;
5using com.Model;
6
7namespace com.BusinessRule
8{
9 /// <summary>
10 /// 检查客户信息的合法性
11 /// </summary>
12 public class CustomerRule
13 {
14 /// <summary>
15 /// 检查客户的名称是否已经存在
16 /// </summary>
17 /// <remarks>
18 /// e.g.:
19 /// bool exist =CustomerRule.IsExistCustomerName(custName);
20 /// </remarks>
21 /// <param name="custName">客户名称</param>
22 /// <returns>客户存在与否</returns>
23
24 public static bool IsExistCustomerName(string custName)
25 {
26 Customer cust = new Customer();
27 CustomerInfo custInfo = cust.GetCustomerByName(custName);
28 if (custInfo == null)
29 return false;
30 else
31 return true;
32 }
33 }
34}
35
2using System.Collections.Generic;
3using System.Text;
4using com.DataAccess;
5using com.Model;
6
7namespace com.BusinessRule
8{
9 /// <summary>
10 /// 检查客户信息的合法性
11 /// </summary>
12 public class CustomerRule
13 {
14 /// <summary>
15 /// 检查客户的名称是否已经存在
16 /// </summary>
17 /// <remarks>
18 /// e.g.:
19 /// bool exist =CustomerRule.IsExistCustomerName(custName);
20 /// </remarks>
21 /// <param name="custName">客户名称</param>
22 /// <returns>客户存在与否</returns>
23
24 public static bool IsExistCustomerName(string custName)
25 {
26 Customer cust = new Customer();
27 CustomerInfo custInfo = cust.GetCustomerByName(custName);
28 if (custInfo == null)
29 return false;
30 else
31 return true;
32 }
33 }
34}
35
七、业务外观层
1using System;
2using System.Collections.Generic;
3using System.Text;
4using System.Web.UI.WebControls;
5using com.BusinessLogic;
6using com.Model;
7
8namespace com.BusinessFacade
9{
10 /// <summary>
11 /// 为界面中Table处理数据
12 /// </summary>
13 public class CustomerTable
14 {
15 public static void SetTableData(Table table)
16 {
17 IList<CustomerInfo> list = new CustomerLogic().GetCustomersByAll();
18
19 AddRowHead(table);
20 foreach (CustomerInfo cust in list)
21 {
22 AddRow(table, cust);
23 }
24 }
25
26 private static void AddRowHead(Table table)
27 {
28 TableCell cell = new TableCell();
29 cell.Text = "Head";
30 TableRow row = new TableRow();
31 row.Cells.Add(cell);
32 table.Rows.Add(row);
33
34 }
35 private static void AddRow(Table table, CustomerInfo cust)
36 {
37 TableRow row = new TableRow();
38 TableCell cell1 = new TableCell();
39 cell1.Text = cust.CustId.ToString();
40 TableCell cell2 = new TableCell();
41 cell2.Text = cust.CustName;
42 TableCell cell3 = new TableCell();
43 cell3.Text = cust.Address;
44 TableCell cell4 = new TableCell();
45 cell4.Text = cust.Linkman;
46 row.Cells.Add(cell1);
47 row.Cells.Add(cell2);
48 row.Cells.Add(cell3);
49 row.Cells.Add(cell4);
50
51 table.Rows.Add(row);
52 }
53 }
54}
55
2using System.Collections.Generic;
3using System.Text;
4using System.Web.UI.WebControls;
5using com.BusinessLogic;
6using com.Model;
7
8namespace com.BusinessFacade
9{
10 /// <summary>
11 /// 为界面中Table处理数据
12 /// </summary>
13 public class CustomerTable
14 {
15 public static void SetTableData(Table table)
16 {
17 IList<CustomerInfo> list = new CustomerLogic().GetCustomersByAll();
18
19 AddRowHead(table);
20 foreach (CustomerInfo cust in list)
21 {
22 AddRow(table, cust);
23 }
24 }
25
26 private static void AddRowHead(Table table)
27 {
28 TableCell cell = new TableCell();
29 cell.Text = "Head";
30 TableRow row = new TableRow();
31 row.Cells.Add(cell);
32 table.Rows.Add(row);
33
34 }
35 private static void AddRow(Table table, CustomerInfo cust)
36 {
37 TableRow row = new TableRow();
38 TableCell cell1 = new TableCell();
39 cell1.Text = cust.CustId.ToString();
40 TableCell cell2 = new TableCell();
41 cell2.Text = cust.CustName;
42 TableCell cell3 = new TableCell();
43 cell3.Text = cust.Address;
44 TableCell cell4 = new TableCell();
45 cell4.Text = cust.Linkman;
46 row.Cells.Add(cell1);
47 row.Cells.Add(cell2);
48 row.Cells.Add(cell3);
49 row.Cells.Add(cell4);
50
51 table.Rows.Add(row);
52 }
53 }
54}
55
八、界面层
1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
2
3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5<html xmlns="http://www.w3.org/1999/xhtml" >
6<head runat="server">
7 <title>无标题页</title>
8</head>
9<body>
10 <form id="form1" runat="server">
11 <div>
12 </div>
13 <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
14 InsertMethod="InsertCustomer" SelectMethod="GetCustomersByAll" TypeName="com.BusinessLogic.CustomerLogic" DeleteMethod="DeleteCustomerByID" UpdateMethod="UpdateCustomer">
15 <DeleteParameters>
16 <asp:ControlParameter ControlID="FormView1" PropertyName="SelectedValue" Name="custId" Type="Int32" />
17 </DeleteParameters>
18 <UpdateParameters>
19 <asp:Parameter Name="custId" Type="Int32" />
20 <asp:Parameter Name="custName" Type="String" />
21 <asp:Parameter Name="address" Type="String" />
22 <asp:Parameter Name="linkman" Type="String" />
23 </UpdateParameters>
24 <InsertParameters>
25 <asp:Parameter Name="custName" Type="String" />
26 <asp:Parameter Name="address" Type="String" />
27 <asp:Parameter Name="linkman" Type="String" />
28 </InsertParameters>
29 </asp:ObjectDataSource>
30 <asp:FormView ID="FormView1" runat="server" DataSourceID="ObjectDataSource1" AllowPaging="True" DataKeyNames="custId">
31 <EditItemTemplate>
32 CustName:
33 <asp:TextBox ID="CustNameTextBox" runat="server" Text='<%# Bind("CustName") %>'></asp:TextBox><br />
34 Address:
35 <asp:TextBox ID="AddressTextBox" runat="server" Text='<%# Bind("Address") %>'></asp:TextBox><br />
36 Linkman:
37 <asp:TextBox ID="LinkmanTextBox" runat="server" Text='<%# Bind("Linkman") %>'></asp:TextBox><br />
38 CustId:
39 <asp:TextBox ID="CustIdTextBox" runat="server" BorderStyle="None" Enabled="False"
40 Text='<%# Bind("CustId") %>'></asp:TextBox><br />
41 <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update"
42 Text="更新"></asp:LinkButton>
43 <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
44 Text="取消"></asp:LinkButton>
45 </EditItemTemplate>
46 <InsertItemTemplate>
47 CustName:
48 <asp:TextBox ID="CustNameTextBox" runat="server" Text='<%# Bind("CustName") %>'></asp:TextBox><br />
49 Address:
50 <asp:TextBox ID="AddressTextBox" runat="server" Text='<%# Bind("Address") %>'></asp:TextBox><br />
51 Linkman:
52 <asp:TextBox ID="LinkmanTextBox" runat="server" Text='<%# Bind("Linkman") %>'></asp:TextBox><br />
53 CustId:
54 <asp:TextBox ID="CustIdTextBox" runat="server" Text='0' Enabled="False"></asp:TextBox><br />
55 <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
56 Text="插入"></asp:LinkButton>
57 <asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
58 Text="取消"></asp:LinkButton>
59 </InsertItemTemplate>
60 <ItemTemplate>
61 CustName:
62 <asp:Label ID="CustNameLabel" runat="server" Text='<%# Bind("CustName") %>'></asp:Label><br />
63 Address:
64 <asp:Label ID="AddressLabel" runat="server" Text='<%# Bind("Address") %>'></asp:Label><br />
65 Linkman:
66 <asp:Label ID="LinkmanLabel" runat="server" Text='<%# Bind("Linkman") %>'></asp:Label><br />
67 CustId:
68 <asp:Label ID="CustIdLabel" runat="server" Enabled="False" Text='<%# Bind("CustId") %>'></asp:Label><br />
69 <asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit"
70 Text="编辑"></asp:LinkButton>
71 <asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False" CommandName="Delete"
72 Text="删除" ></asp:LinkButton>
73 <asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" CommandName="New"
74 Text="新建"></asp:LinkButton>
75 </ItemTemplate>
76 </asp:FormView>
77 <asp:Table ID="Table1" runat="server">
78 </asp:Table>
79
80 </form>
81</body>
82</html>
83
2
3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5<html xmlns="http://www.w3.org/1999/xhtml" >
6<head runat="server">
7 <title>无标题页</title>
8</head>
9<body>
10 <form id="form1" runat="server">
11 <div>
12 </div>
13 <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
14 InsertMethod="InsertCustomer" SelectMethod="GetCustomersByAll" TypeName="com.BusinessLogic.CustomerLogic" DeleteMethod="DeleteCustomerByID" UpdateMethod="UpdateCustomer">
15 <DeleteParameters>
16 <asp:ControlParameter ControlID="FormView1" PropertyName="SelectedValue" Name="custId" Type="Int32" />
17 </DeleteParameters>
18 <UpdateParameters>
19 <asp:Parameter Name="custId" Type="Int32" />
20 <asp:Parameter Name="custName" Type="String" />
21 <asp:Parameter Name="address" Type="String" />
22 <asp:Parameter Name="linkman" Type="String" />
23 </UpdateParameters>
24 <InsertParameters>
25 <asp:Parameter Name="custName" Type="String" />
26 <asp:Parameter Name="address" Type="String" />
27 <asp:Parameter Name="linkman" Type="String" />
28 </InsertParameters>
29 </asp:ObjectDataSource>
30 <asp:FormView ID="FormView1" runat="server" DataSourceID="ObjectDataSource1" AllowPaging="True" DataKeyNames="custId">
31 <EditItemTemplate>
32 CustName:
33 <asp:TextBox ID="CustNameTextBox" runat="server" Text='<%# Bind("CustName") %>'></asp:TextBox><br />
34 Address:
35 <asp:TextBox ID="AddressTextBox" runat="server" Text='<%# Bind("Address") %>'></asp:TextBox><br />
36 Linkman:
37 <asp:TextBox ID="LinkmanTextBox" runat="server" Text='<%# Bind("Linkman") %>'></asp:TextBox><br />
38 CustId:
39 <asp:TextBox ID="CustIdTextBox" runat="server" BorderStyle="None" Enabled="False"
40 Text='<%# Bind("CustId") %>'></asp:TextBox><br />
41 <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update"
42 Text="更新"></asp:LinkButton>
43 <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
44 Text="取消"></asp:LinkButton>
45 </EditItemTemplate>
46 <InsertItemTemplate>
47 CustName:
48 <asp:TextBox ID="CustNameTextBox" runat="server" Text='<%# Bind("CustName") %>'></asp:TextBox><br />
49 Address:
50 <asp:TextBox ID="AddressTextBox" runat="server" Text='<%# Bind("Address") %>'></asp:TextBox><br />
51 Linkman:
52 <asp:TextBox ID="LinkmanTextBox" runat="server" Text='<%# Bind("Linkman") %>'></asp:TextBox><br />
53 CustId:
54 <asp:TextBox ID="CustIdTextBox" runat="server" Text='0' Enabled="False"></asp:TextBox><br />
55 <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
56 Text="插入"></asp:LinkButton>
57 <asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
58 Text="取消"></asp:LinkButton>
59 </InsertItemTemplate>
60 <ItemTemplate>
61 CustName:
62 <asp:Label ID="CustNameLabel" runat="server" Text='<%# Bind("CustName") %>'></asp:Label><br />
63 Address:
64 <asp:Label ID="AddressLabel" runat="server" Text='<%# Bind("Address") %>'></asp:Label><br />
65 Linkman:
66 <asp:Label ID="LinkmanLabel" runat="server" Text='<%# Bind("Linkman") %>'></asp:Label><br />
67 CustId:
68 <asp:Label ID="CustIdLabel" runat="server" Enabled="False" Text='<%# Bind("CustId") %>'></asp:Label><br />
69 <asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit"
70 Text="编辑"></asp:LinkButton>
71 <asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False" CommandName="Delete"
72 Text="删除" ></asp:LinkButton>
73 <asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" CommandName="New"
74 Text="新建"></asp:LinkButton>
75 </ItemTemplate>
76 </asp:FormView>
77 <asp:Table ID="Table1" runat="server">
78 </asp:Table>
79
80 </form>
81</body>
82</html>
83