您的位置:首页 > 编程语言 > ASP

ASP.NET学习--N层代码示例

2007-10-27 09:26 393 查看
一、数据库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');

二、配置文件web.config
[align=left]<?xmlversion="1.0"?>[/align]
[align=left]<configuration>[/align]
[align=left] <appSettings/>[/align]
[align=left] <connectionStrings>[/align]
[align=left] <addname="TestConnectionString"connectionString="Data Source=GONGCHL;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=123"providerName="System.Data.SqlClient"/>[/align]
[align=left] </connectionStrings>[/align]
[align=left] <system.web>[/align]
[align=left] <compilationdebug="true"/>[/align]
[align=left] <authenticationmode="Windows"/>[/align]
[align=left] </system.web>[/align]
[align=left]</configuration>[/align]
三、业务实体
[align=left]using System;[/align]
[align=left]using System.Collections.Generic;[/align]
[align=left]using System.Text;[/align]
[align=left]namespace com.Model[/align]
[align=left]{[/align]
[align=left] ///<summary>[/align]
[align=left] /// 业务实体CustomerInfo[/align]
[align=left] ///</summary>[/align]
[align=left] [Serializable][/align]
[align=left] public class CustomerInfo[/align]
[align=left] {[/align]
[align=left] ///<summary>[/align]
[align=left] /// 默认的构造函数[/align]
[align=left] ///</summary>[/align]
[align=left] public CustomerInfo() {}[/align]
[align=left] ///<summary>[/align]
[align=left] /// 有参数的构造函数[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="custId">客户号</param>[/align]
[align=left] ///<param name="custName">客户名称</param>[/align]
[align=left] ///<param name="address">客户地址</param>[/align]
[align=left] ///<param name="linkman">联系人</param>[/align]
[align=left] public CustomerInfo(int custId, string custName, string address, string linkman)[/align]
{
[align=left] this.custId = custId;[/align]
[align=left] this.custName = custName;[/align]
[align=left] this.address = address;[/align]
[align=left] this.linkman = linkman;[/align]
[align=left] }[/align]
[align=left] private int custId;[/align]
[align=left] public int CustId[/align]
[align=left] {[/align]
[align=left] get { return custId; }[/align]
[align=left] set { custId = value; }[/align]
[align=left] }[/align]
[align=left] private string custName;[/align]
[align=left] public string CustName[/align]
[align=left] {[/align]
[align=left] get { return custName; }[/align]
[align=left] set { custName = value; }[/align]
[align=left] }[/align]
[align=left] private string address;[/align]
[align=left] public string Address[/align]
[align=left] {[/align]
[align=left] get { return address; }[/align]
[align=left] set { address = value; }[/align]
[align=left] }[/align]
[align=left] private string linkman;[/align]
[align=left] public string Linkman[/align]
[align=left] {[/align]
[align=left] get { return linkman; }[/align]
[align=left] set { linkman = value; }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
四、数据访问层
类:SqlHelper
[align=left]//===============================================================================[/align]
[align=left]// .NET数据访问通用程序,来自Microsoft公司[/align]
[align=left]// 更多信息参见[/align]
[align=left]// http://msdn.microsoft.com/library/en-us/dnbda/html/daab-rm.asp[/align] [align=left]//===============================================================================[/align]
[align=left]using System;[/align]
[align=left]using System.Configuration;[/align]
[align=left]using System.Data;[/align]
[align=left]using System.Data.SqlClient;[/align]
[align=left]using System.Collections;[/align]
[align=left]namespace com.DataAccess[/align]
[align=left]{[/align]
[align=left] ///<summary>[/align]
[align=left] /// SqlHelper类提供很高的数据访问性能, [/align]
[align=left] /// 使用SqlClient类的通用定义.[/align]
[align=left] ///</summary>[/align]
[align=left] public abstract class SqlHelper[/align]
[align=left] {[/align]
[align=left] //定义数据库连接串[/align]
[align=left] public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString;[/align]
[align=left] //public static readonly string ConnectionStringInventoryDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString2"].ConnectionString;[/align]
[align=left] //public static readonly string ConnectionStringOrderDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString3"].ConnectionString;[/align]
[align=left] //public static readonly string ConnectionStringProfile = ConfigurationManager.ConnectionStrings["SQLProfileConnString"].ConnectionString;[/align]
[align=left] // 存贮Cache缓存的Hashtable集合[/align]
[align=left] private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());[/align]
[align=left] ///<summary>[/align]
[align=left] /// 使用连接字符串,执行一个SqlCommand命令(没有记录返回)[/align]
[align=left] /// 使用提供的参数集.[/align]
[align=left] ///</summary>[/align]
[align=left] ///<remarks>[/align]
[align=left] /// 示例: [/align]
[align=left] /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));[/align]
[align=left] ///</remarks>[/align]
[align=left] ///<param name="connectionString">一个有效的SqlConnection连接串</param>[/align]
[align=left] ///<param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param>[/align]
[align=left] ///<param name="commandText">存贮过程名称或是一个T-SQL语句串</param>[/align]
[align=left] ///<param name="commandParameters">执行命令的参数集</param>[/align]
[align=left] ///<returns>受此命令影响的行数</returns>[/align]
[align=left] public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)[/align]
[align=left] {[/align]
[align=left] SqlCommand cmd = new SqlCommand();[/align]
[align=left] using (SqlConnection conn = new SqlConnection(connectionString))[/align]
[align=left] {[/align]
[align=left] PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);[/align]
[align=left] int val = cmd.ExecuteNonQuery();[/align]
[align=left] cmd.Parameters.Clear();[/align]
[align=left] return val;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 在一个存在的连接上执行数据库的命令操作[/align]
[align=left] /// 使用提供的参数集.[/align]
[align=left] ///</summary>[/align]
[align=left] ///<remarks>[/align]
[align=left] /// e.g.: [/align]
[align=left] /// int result = ExecuteNonQuery(connection, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));[/align]
[align=left] ///</remarks>[/align]
[align=left] ///<param name="conn">一个存在的数据库连接对象</param>[/align]
[align=left] ///<param name="commandType">命令类型CommandType (stored procedure, text, etc.)</param>[/align]
[align=left] ///<param name="commandText">存贮过程名称或是一个T-SQL语句串</param>[/align]
[align=left] ///<param name="commandParameters">执行命令的参数集</param>[/align]
[align=left] ///<returns>受此命令影响的行数</returns>[/align]
[align=left] public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)[/align]
[align=left] {[/align]
[align=left] SqlCommand cmd = new SqlCommand();[/align]
[align=left] PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);[/align]
[align=left] int val = cmd.ExecuteNonQuery();[/align]
[align=left] cmd.Parameters.Clear();[/align]
[align=left] return val;[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 在一个事务的连接上执行数据库的命令操作[/align]
[align=left] /// 使用提供的参数集.[/align]
[align=left] ///</summary>[/align]
[align=left] ///<remarks>[/align]
[align=left] /// e.g.: [/align]
[align=left] /// int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));[/align]
[align=left] ///</remarks>[/align]
[align=left] ///<param name="trans">一个存在的事务</param>[/align]
[align=left] ///<param name="commandType">命令类型CommandType (stored procedure, text, etc.)</param>[/align]
[align=left] ///<param name="commandText">存贮过程名称或是一个T-SQL语句串</param>[/align]
[align=left] ///<param name="commandParameters">执行命令的参数集</param>[/align]
[align=left] ///<returns>受此命令影响的行数</returns>[/align]
[align=left] public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)[/align]
[align=left] {[/align]
[align=left] SqlCommand cmd = new SqlCommand();[/align]
[align=left] PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);[/align]
[align=left] int val = cmd.ExecuteNonQuery();[/align]
[align=left] cmd.Parameters.Clear();[/align]
[align=left] return val;[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 在一个连接串上执行一个命令,返回一个SqlDataReader对象[/align]
[align=left] /// 使用提供的参数.[/align]
[align=left] ///</summary>[/align]
[align=left] ///<remarks>[/align]
[align=left] /// e.g.: [/align]
[align=left] /// SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));[/align]
[align=left] ///</remarks>[/align]
[align=left] ///<param name="connectionString">一个有效的SqlConnection连接串</param>[/align]
[align=left] ///<param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param>[/align]
[align=left] ///<param name="commandText">存贮过程名称或是一个T-SQL语句串</param>[/align]
[align=left] ///<param name="commandParameters">执行命令的参数集</param>[/align]
[align=left] ///<returns>一个结果集对象SqlDataReader</returns>[/align]
[align=left] public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)[/align]
[align=left] {[/align]
[align=left] SqlCommand cmd = new SqlCommand();[/align]
[align=left] SqlConnection conn = new SqlConnection(connectionString);[/align]
[align=left] // 如果不存在要查询的对象,则发生异常[/align]
[align=left] // 连接要关闭[/align]
[align=left] // CommandBehavior.CloseConnection在异常时不发生作用[/align]
[align=left] try[/align]
[align=left] {[/align]
[align=left] PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);[/align]
[align=left] SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);[/align]
[align=left] cmd.Parameters.Clear();[/align]
[align=left] return rdr;[/align]
[align=left] }[/align]
[align=left] catch[/align]
[align=left] {[/align]
[align=left] conn.Close();[/align]
[align=left] throw;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 在一个连接串上执行一个命令,返回表中第一行,第一列的值[/align]
[align=left] /// 使用提供的参数.[/align]
[align=left] ///</summary>[/align]
[align=left] ///<remarks>[/align]
[align=left] /// e.g.: [/align]
[align=left] /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));[/align]
[align=left] ///</remarks>[/align]
[align=left] ///<param name="connectionString">一个有效的SqlConnection连接串</param>[/align]
[align=left] ///<param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param>[/align]
[align=left] ///<param name="commandText">存贮过程名称或是一个T-SQL语句串</param>[/align]
[align=left] ///<param name="commandParameters">执行命令的参数集</param> /// <returns>返回的对象,在使用时记得类型转换</returns>[/align]
[align=left] public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)[/align]
[align=left] {[/align]
[align=left] SqlCommand cmd = new SqlCommand();[/align]
[align=left] using (SqlConnection connection = new SqlConnection(connectionString))[/align]
[align=left] {[/align]
[align=left] PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);[/align]
[align=left] object val = cmd.ExecuteScalar();[/align]
[align=left] cmd.Parameters.Clear();[/align]
[align=left] return val;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 在一个连接上执行一个命令,返回表中第一行,第一列的值[/align]
[align=left] /// 使用提供的参数.[/align]
[align=left] ///</summary>[/align]
[align=left] ///<remarks>[/align]
[align=left] /// e.g.: [/align]
[align=left] /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));[/align]
[align=left] ///</remarks>[/align]
[align=left] ///<param name="connectionString">一个有效的SqlConnection连接</param>[/align]
[align=left] ///<param name="commandType">命令类型CommandType(stored procedure, text, etc.)</param>[/align]
[align=left] ///<param name="commandText">存贮过程名称或是一个T-SQL语句串</param>[/align]
[align=left] ///<param name="commandParameters">执行命令的参数集</param> /// <returns>返回的对象,在使用时记得类型转换</returns>[/align]
[align=left] public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)[/align]
[align=left] {[/align]
[align=left] SqlCommand cmd = new SqlCommand();[/align]
[align=left] PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);[/align]
[align=left] object val = cmd.ExecuteScalar();[/align]
[align=left] cmd.Parameters.Clear();[/align]
[align=left] return val;[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 在缓存中添加参数数组[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="cacheKey">参数的Key</param>[/align]
[align=left] ///<param name="cmdParms">参数数组</param>[/align]
[align=left] public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters)[/align]
[align=left] {[/align]
[align=left] parmCache[cacheKey] = commandParameters;[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 提取缓存的参数数组[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="cacheKey">查找缓存的key</param>[/align]
[align=left] ///<returns>返回被缓存的参数数组</returns>[/align]
[align=left] public static SqlParameter[] GetCachedParameters(string cacheKey)[/align]
[align=left] {[/align]
[align=left] SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];[/align]
[align=left] if (cachedParms == null)[/align]
[align=left] return null;[/align]
[align=left] SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];[/align]
[align=left] for (int i = 0, j = cachedParms.Length; i < j; i++)[/align]
[align=left] clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();[/align]
[align=left] return clonedParms;[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 提供一个SqlCommand对象的设置[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="cmd">SqlCommand对象</param>[/align]
[align=left] ///<param name="conn">SqlConnection 对象</param>[/align]
[align=left] ///<param name="trans">SqlTransaction 对象</param>[/align]
[align=left] ///<param name="cmdType">CommandType 如存贮过程,T-SQL</param>[/align]
[align=left] ///<param name="cmdText">存贮过程名或查询串</param>[/align]
[align=left] ///<param name="cmdParms">命令中用到的参数集</param>[/align]
[align=left] private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)[/align]
[align=left] {[/align]
[align=left] if (conn.State != ConnectionState.Open)[/align]
[align=left] conn.Open();[/align]
[align=left] cmd.Connection = conn;[/align]
[align=left] cmd.CommandText = cmdText;[/align]
[align=left] if (trans != null)[/align]
[align=left] cmd.Transaction = trans;[/align]
[align=left] cmd.CommandType = cmdType;[/align]
[align=left] if (cmdParms != null)[/align]
[align=left] {[/align]
[align=left] foreach (SqlParameter parm in cmdParms)[/align]
[align=left] cmd.Parameters.Add(parm);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
类:Customer
[align=left]using System;[/align]
[align=left]using System.Data.SqlClient;[/align]
[align=left]using System.Data;[/align]
[align=left]using System.Text;[/align]
[align=left]using System.Collections.Generic;[/align]
[align=left]using com.Model;[/align]
[align=left]namespace com.DataAccess[/align]
[align=left]{[/align]
[align=left] ///<summary>[/align]
[align=left] /// 对客户表的所有数据访问操作[/align]
[align=left] ///</summary>[/align]
[align=left] public class Customer[/align]
[align=left] {[/align]
[align=left] //静态常量,参数名,T-SQL串[/align]
[align=left] private const string SQL_SELECT_CUSTOMER_BY_ID = [/align]
[align=left] "SELECT CustId, CustName, Address, Linkman FROM CUSTOMERS WHERE CustID = @CustId";[/align]
[align=left] private const string SQL_SELECT_CUSTOMER_BY_NAME =[/align]
[align=left] "SELECT CustId, CustName, Address, Linkman FROM CUSTOMERS WHERE CustName = @CustName";[/align]
[align=left] private const string SQL_SELECT_CUSTOMER_BY_ALL = [/align]
[align=left] "SELECT CustId, CustName, Address, Linkman FROM CUSTOMERS";[/align]
[align=left] private const string SQL_UPDATE_CUSTOMER_BY_ID = [/align]
[align=left] "UPDATE CUSTOMERS SET CustName=@CustName, Address=@Address, Linkman = @Linkman WHERE CustId=@CustId ";[/align]
[align=left] private const string SQL_DELETE_CUSTOMER_BY_ID = [/align]
[align=left] "DELETE CUSTOMERS WHERE CustId=@CustId ";[/align]
[align=left] private const string SQL_INSERT_CUSTOMER =[/align]
[align=left] "Declare @ID int;INSERT INTO CUSTOMERS VALUES(@CustName, @Address, @Linkman);SELECT @ID = @@IDENTITY; SELECT @ID";[/align]
[align=left] [/align]
[align=left] private const string PARM_CUSTOMERID = "@CustId";[/align]
[align=left] private const string PARM_CUSTOMERNAME = "@CustName";[/align]
[align=left] private const string PARM_ADDRESS = "@Address";[/align]
[align=left] private const string PARM_LINKMAN = "@Linkman";[/align]
[align=left] ///<summary>[/align]
[align=left] /// 按客户ID查询[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="custId">客户号</param> [/align]
[align=left] ///<returns>客户对象</returns>[/align]
[align=left] public CustomerInfo GetCustomerById(int custId)[/align]
[align=left] {[/align]
[align=left] CustomerInfo customerInfo=null;[/align]
[align=left] SqlParameter parm = new SqlParameter(PARM_CUSTOMERID, SqlDbType.Int);[/align]
[align=left] parm.Value = custId;[/align]
[align=left] //按客户号参数执行查询得到一个客户信息[/align]
[align=left] using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CUSTOMER_BY_ID, parm))[/align]
[align=left] {[/align]
[align=left] if (rdr.Read())[/align]
[align=left] customerInfo = new CustomerInfo(rdr.GetInt32(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3));[/align]
[align=left] }[/align]
[align=left] return customerInfo;[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 按客户名称查询[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="custName">客户名称</param> [/align]
[align=left] ///<returns>客户对象</returns>[/align]
[align=left] public CustomerInfo GetCustomerByName(string custName)[/align]
[align=left] {[/align]
[align=left] CustomerInfo customerInfo = null;[/align]
[align=left] SqlParameter parm = new SqlParameter(PARM_CUSTOMERNAME, SqlDbType.VarChar,20);[/align]
[align=left] parm.Value = custName;[/align]
[align=left] //按客户号参数执行查询得到一个客户信息[/align]
[align=left] using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CUSTOMER_BY_NAME, parm))[/align]
[align=left] {[/align]
[align=left] if (rdr.Read())[/align]
[align=left] customerInfo = new CustomerInfo(rdr.GetInt32(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3));[/align]
[align=left] }[/align]
[align=left] return customerInfo;[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 查询所有客户信息[/align]
[align=left] /// 结果为IList[/align]
[align=left] ///</summary>[/align]
[align=left] ///<returns>一个客户集合</returns>[/align]
[align=left] public IList<CustomerInfo> GetCusomersByAll()[/align]
[align=left] {[/align]
[align=left] IList<CustomerInfo> customers = new List<CustomerInfo>();[/align]
[align=left] //Finally execute the query[/align]
[align=left] using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CUSTOMER_BY_ALL, null))[/align]
[align=left] {[/align]
[align=left] while (rdr.Read())[/align]
[align=left] {[/align]
[align=left] CustomerInfo customerInfo = new CustomerInfo(rdr.GetInt32(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3));[/align]
[align=left] customers.Add(customerInfo);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] return customers;[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 插入一个客户信息[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="customer">客户对象CustomerInfo</param> [/align]
[align=left] ///<returns>bool类型,true or false</returns>[/align]
[align=left] public bool InsertCustomer(CustomerInfo customerInfo)[/align]
[align=left] {[/align]
[align=left] SqlParameter[] paras = new SqlParameter[3];[/align]
[align=left] paras[0]=new SqlParameter(PARM_CUSTOMERNAME,SqlDbType.VarChar,20);[/align]
[align=left] paras[0].Value=customerInfo.CustName;[/align]
[align=left] paras[1]=new SqlParameter(PARM_ADDRESS,SqlDbType.VarChar,50);[/align]
[align=left] paras[1].Value=customerInfo.Address;[/align]
[align=left] paras[2]=new SqlParameter(PARM_LINKMAN,SqlDbType.VarChar,20);[/align]
[align=left] paras[2].Value=customerInfo.Linkman;[/align]
[align=left] using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_INSERT_CUSTOMER, paras))[/align]
[align=left] {[/align]
[align=left] if (rdr.Read())[/align]
[align=left] customerInfo.CustId = rdr.GetInt32(0);[/align]
[align=left] else[/align]
[align=left] return false;[/align]
[align=left] }[/align]
[align=left] return true;[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 修改一个客户信息[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="customer">客户对象CustomerInfo</param> [/align]
[align=left] ///<returns>bool类型,true or false</returns>[/align]
[align=left] public bool UpdateCustomerByID(CustomerInfo customerInfo)[/align]
[align=left] {[/align]
[align=left] SqlParameter[] paras = new SqlParameter[4];[/align]
[align=left] paras[0] = new SqlParameter(PARM_CUSTOMERNAME, SqlDbType.VarChar, 20);[/align]
[align=left] paras[0].Value = customerInfo.CustName;[/align]
[align=left] paras[1] = new SqlParameter(PARM_ADDRESS, SqlDbType.VarChar, 50);[/align]
[align=left] paras[1].Value = customerInfo.Address;[/align]
[align=left] paras[2] = new SqlParameter(PARM_LINKMAN, SqlDbType.VarChar, 20);[/align]
[align=left] paras[2].Value = customerInfo.Linkman;[/align]
[align=left] paras[3] = new SqlParameter(PARM_CUSTOMERID, SqlDbType.Int);[/align]
[align=left] paras[3].Value = customerInfo.CustId;[/align]
[align=left] int row = SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_UPDATE_CUSTOMER_BY_ID, paras);[/align]
[align=left] if (row == 0)[/align]
[align=left] return false;[/align]
[align=left] return true;[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 按ID删除一个客户信息[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="custId">客户号</param> [/align]
[align=left] ///<returns>bool类型,true or false</returns>[/align]
[align=left] public bool DeleteCustomerByID(int custId)[/align]
[align=left] {[/align]
[align=left] SqlParameter para = new SqlParameter(PARM_CUSTOMERID, SqlDbType.Int);[/align]
[align=left] para.Value = custId;[/align]
[align=left] int row = SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_DELETE_CUSTOMER_BY_ID, para);[/align]
[align=left] if (row == 0)[/align]
[align=left] return false;[/align]
[align=left] return true;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
五、业务逻辑层
[align=left]using System;[/align]
[align=left]using System.Collections.Generic;[/align]
[align=left]using System.Text;[/align]
[align=left]using com.DataAccess;[/align]
[align=left]using com.Model;[/align]
[align=left]using com.BusinessRule;[/align]
[align=left]namespace com.BusinessLogic[/align]
[align=left]{[/align]
[align=left] public class CustomerLogic[/align]
[align=left] {[/align]
[align=left] ///<summary>[/align]
[align=left] /// 插入一个客户信息[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="custId">客户号</param> [/align]
[align=left] ///<param name="custName">客户名称</param> [/align]
[align=left] ///<param name="address">客户地址</param> [/align]
[align=left] ///<param name="linkman">联系人</param> [/align]
[align=left] ///<returns>bool类型,true or false</returns>[/align]
[align=left] public bool InsertCustomer(int custId,string custName, string address, string linkman)[/align]
[align=left] {[/align]
[align=left] if (CustomerRule.IsExistCustomerName(custName))[/align]
[align=left] return false;[/align]
[align=left] Customer customer = new Customer();[/align]
[align=left] CustomerInfo customerInfo = new CustomerInfo(custId,custName,address,linkman);[/align]
[align=left] return customer.InsertCustomer(customerInfo);[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 插入一个客户信息[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="custName">客户名称</param> [/align]
[align=left] ///<param name="address">客户地址</param> [/align]
[align=left] ///<param name="linkman">联系人</param> [/align]
[align=left] ///<returns>bool类型,true or false</returns>[/align]
[align=left] public bool InsertCustomer(string custName, string address, string linkman)[/align]
[align=left] {[/align]
[align=left] if (CustomerRule.IsExistCustomerName(custName))[/align]
[align=left] return false;[/align]
[align=left] Customer customer = new Customer();[/align]
[align=left] CustomerInfo customerInfo = new CustomerInfo(0, custName, address, linkman);[/align]
[align=left] return customer.InsertCustomer(customerInfo);[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 修改一个客户信息[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="custId">客户号</param> [/align]
[align=left] ///<param name="custName">客户名称</param> [/align]
[align=left] ///<param name="address">客户地址</param> [/align]
[align=left] ///<param name="linkman">联系人</param> [/align]
[align=left] ///<returns>bool类型,true or false</returns>[/align]
[align=left] public bool UpdateCustomer(int custId,string custName, string address, string linkman)[/align]
[align=left] {[/align]
[align=left] Customer customer = new Customer();[/align]
[align=left] CustomerInfo customerInfo = new CustomerInfo(custId, custName, address, linkman);[/align]
[align=left] return customer.UpdateCustomerByID(customerInfo);[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 按ID删除一个客户信息[/align]
[align=left] ///</summary>[/align]
[align=left] ///<param name="custId">客户号</param> [/align]
[align=left] ///<returns>bool类型,true or false</returns>[/align]
[align=left] public bool DeleteCustomerByID(int custId)[/align]
[align=left] {[/align]
[align=left] Customer customer = new Customer();[/align]
[align=left] return customer.DeleteCustomerByID(custId);[/align]
[align=left] }[/align]
[align=left] ///<summary>[/align]
[align=left] /// 查询所有客户信息[/align]
[align=left] /// 结果为IList[/align]
[align=left] ///</summary>[/align]
[align=left] ///<returns>一个客户集合</returns>[/align]
[align=left] public IList<CustomerInfo> GetCustomersByAll()[/align]
[align=left] {[/align]
[align=left] Customer customer = new Customer();[/align]
[align=left] return customer.GetCusomersByAll();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
六、业务规则层
[align=left]using System;[/align]
[align=left]using System.Collections.Generic;[/align]
[align=left]using System.Text;[/align]
[align=left]using com.DataAccess;[/align]
[align=left]using com.Model;[/align]
[align=left]namespace com.BusinessRule[/align]
[align=left]{[/align]
[align=left] ///<summary>[/align]
[align=left] /// 检查客户信息的合法性[/align]
[align=left] ///</summary>[/align]
[align=left] public class CustomerRule[/align]
[align=left] {[/align]
[align=left] ///<summary>[/align]
[align=left] /// 检查客户的名称是否已经存在[/align]
[align=left] ///</summary>[/align]
[align=left] ///<remarks>[/align]
[align=left] /// e.g.: [/align]
[align=left] /// bool exist =CustomerRule.IsExistCustomerName(custName);[/align]
[align=left] ///</remarks>[/align]
[align=left] ///<param name="custName">客户名称</param>[/align]
[align=left] ///<returns>客户存在与否</returns>[/align]
[align=left] public static bool IsExistCustomerName(string custName)[/align]
[align=left] {[/align]
[align=left] Customer cust = new Customer();[/align]
[align=left] CustomerInfo custInfo = cust.GetCustomerByName(custName);[/align]
[align=left] if (custInfo == null)[/align]
[align=left] return false;[/align]
[align=left] else[/align]
[align=left] return true;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
七、业务外观层
[align=left]using System;[/align]
[align=left]using System.Collections.Generic;[/align]
[align=left]using System.Text;[/align]
[align=left]using System.Web.UI.WebControls;[/align]
[align=left]using com.BusinessLogic;[/align]
[align=left]using com.Model;[/align]
[align=left]namespace com.BusinessFacade[/align]
[align=left]{[/align]
[align=left] ///<summary>[/align]
[align=left] /// 为界面中Table处理数据[/align]
[align=left] ///</summary>[/align]
[align=left] public class CustomerTable[/align]
[align=left] {[/align]
[align=left] public static void SetTableData(Table table)[/align]
[align=left] {[/align]
[align=left] IList<CustomerInfo> list = new CustomerLogic().GetCustomersByAll();[/align]
[align=left] AddRowHead(table);[/align]
[align=left] foreach (CustomerInfo cust in list)[/align]
[align=left] {[/align]
[align=left] AddRow(table, cust);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] private static void AddRowHead(Table table)[/align]
[align=left] {[/align]
[align=left] TableCell cell = new TableCell();[/align]
[align=left] cell.Text = "Head";[/align]
[align=left] TableRow row = new TableRow();[/align]
[align=left] row.Cells.Add(cell);[/align]
[align=left] table.Rows.Add(row);[/align]
[align=left] }[/align]
[align=left] private static void AddRow(Table table, CustomerInfo cust)[/align]
[align=left] {[/align]
[align=left] TableRow row = new TableRow();[/align]
[align=left] TableCell cell1 = new TableCell();[/align]
[align=left] cell1.Text = cust.CustId.ToString();[/align]
[align=left] TableCell cell2 = new TableCell();[/align]
[align=left] cell2.Text = cust.CustName;[/align]
[align=left] TableCell cell3 = new TableCell();[/align]
[align=left] cell3.Text = cust.Address;[/align]
[align=left] TableCell cell4 = new TableCell();[/align]
[align=left] cell4.Text = cust.Linkman;[/align]
[align=left] row.Cells.Add(cell1);[/align]
[align=left] row.Cells.Add(cell2);[/align]
[align=left] row.Cells.Add(cell3);[/align]
[align=left] row.Cells.Add(cell4);[/align]
[align=left] table.Rows.Add(row);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
八、界面层
[align=left]<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>[/align]
[align=left]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">[/align]
[align=left]<html xmlns="http://www.w3.org/1999/xhtml" >[/align]
[align=left]<head runat="server">[/align]
[align=left] <title>无标题页</title>[/align]
[align=left]</head>[/align]
[align=left]<body>[/align]
[align=left] <form id="form1" runat="server">[/align]
[align=left] <div>[/align]
[align=left]  </div>[/align]
[align=left] <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"[/align]
[align=left] InsertMethod="InsertCustomer" SelectMethod="GetCustomersByAll" TypeName="com.BusinessLogic.CustomerLogic" DeleteMethod="DeleteCustomerByID" UpdateMethod="UpdateCustomer">[/align]
[align=left] <DeleteParameters>[/align]
[align=left] <asp:ControlParameter ControlID="FormView1" PropertyName="SelectedValue" Name="custId" Type="Int32" />[/align]
[align=left] </DeleteParameters>[/align]
[align=left] <UpdateParameters>[/align]
[align=left] <asp:Parameter Name="custId" Type="Int32" />[/align]
[align=left] <asp:Parameter Name="custName" Type="String" />[/align]
[align=left] <asp:Parameter Name="address" Type="String" />[/align]
[align=left] <asp:Parameter Name="linkman" Type="String" />[/align]
[align=left] </UpdateParameters>[/align]
[align=left] <InsertParameters>[/align]
[align=left] <asp:Parameter Name="custName" Type="String" />[/align]
[align=left] <asp:Parameter Name="address" Type="String" />[/align]
[align=left] <asp:Parameter Name="linkman" Type="String" />[/align]
[align=left] </InsertParameters>[/align]
[align=left] </asp:ObjectDataSource>[/align]
[align=left] <asp:FormView ID="FormView1" runat="server" DataSourceID="ObjectDataSource1" AllowPaging="True" DataKeyNames="custId">[/align]
[align=left] <EditItemTemplate>[/align]
[align=left] CustName:[/align]
[align=left] <asp:TextBox ID="CustNameTextBox" runat="server" Text='<%# Bind("CustName") %>'></asp:TextBox><br />[/align]
[align=left] Address:[/align]
[align=left] <asp:TextBox ID="AddressTextBox" runat="server" Text='<%# Bind("Address") %>'></asp:TextBox><br />[/align]
[align=left] Linkman:[/align]
[align=left] <asp:TextBox ID="LinkmanTextBox" runat="server" Text='<%# Bind("Linkman") %>'></asp:TextBox><br />[/align]
[align=left] CustId:[/align]
[align=left] <asp:TextBox ID="CustIdTextBox" runat="server" BorderStyle="None" Enabled="False"[/align]
[align=left] Text='<%# Bind("CustId") %>'></asp:TextBox><br />[/align]
[align=left] <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update"[/align]
[align=left] Text="更新"></asp:LinkButton>[/align]
[align=left] <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"[/align]
[align=left] Text="取消"></asp:LinkButton>[/align]
[align=left] </EditItemTemplate>[/align]
[align=left] <InsertItemTemplate>[/align]
[align=left] CustName:[/align]
[align=left] <asp:TextBox ID="CustNameTextBox" runat="server" Text='<%# Bind("CustName") %>'></asp:TextBox><br />[/align]
[align=left] Address:[/align]
[align=left] <asp:TextBox ID="AddressTextBox" runat="server" Text='<%# Bind("Address") %>'></asp:TextBox><br />[/align]
[align=left] Linkman:[/align]
[align=left] <asp:TextBox ID="LinkmanTextBox" runat="server" Text='<%# Bind("Linkman") %>'></asp:TextBox><br />[/align]
[align=left] CustId:[/align]
[align=left] <asp:TextBox ID="CustIdTextBox" runat="server" Text='0' Enabled="False"></asp:TextBox><br />[/align]
[align=left] <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"[/align]
[align=left] Text="插入"></asp:LinkButton>[/align]
[align=left] <asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"[/align]
[align=left] Text="取消"></asp:LinkButton>[/align]
[align=left] </InsertItemTemplate>[/align]
[align=left] <ItemTemplate>[/align]
[align=left] CustName:[/align]
[align=left] <asp:Label ID="CustNameLabel" runat="server" Text='<%# Bind("CustName") %>'></asp:Label><br />[/align]
[align=left] Address:[/align]
[align=left] <asp:Label ID="AddressLabel" runat="server" Text='<%# Bind("Address") %>'></asp:Label><br />[/align]
[align=left] Linkman:[/align]
[align=left] <asp:Label ID="LinkmanLabel" runat="server" Text='<%# Bind("Linkman") %>'></asp:Label><br />[/align]
[align=left] CustId:[/align]
[align=left] <asp:Label ID="CustIdLabel" runat="server" Enabled="False" Text='<%# Bind("CustId") %>'></asp:Label><br />[/align]
[align=left] <asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit"[/align]
[align=left] Text="编辑"></asp:LinkButton>[/align]
[align=left] <asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False" CommandName="Delete"[/align]
[align=left] Text="删除" ></asp:LinkButton>[/align]
[align=left] <asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" CommandName="New"[/align]
[align=left] Text="新建"></asp:LinkButton>[/align]
[align=left] </ItemTemplate>[/align]
[align=left] </asp:FormView>[/align]
[align=left] <asp:Table ID="Table1" runat="server">[/align]
[align=left] </asp:Table>[/align]
[align=left]  [/align]
[align=left] </form>[/align]
[align=left]</body>[/align]
[align=left]</html>[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐