三层2

namespace ExecuteReader.model
{
   public  class Customer
    {
        public long Id { get; set; }
        public string Name { get; set; }
        public DateTime? Birthday { get; set; }
        public string Address { get; set; }
        public string TelNum { get; set; }
        public int CustLevel { get; set; }

    }
}

namespace ExecuteReader
{
    class SqlHelper
    {
        private static string connStr = ConfigurationManager.ConnectionStrings["adConnStr"].ConnectionString;

      
        public static int  ExecuteNonQuery(string sql , params SqlParameter [] parameters )
        {
            using (SqlConnection conn = new SqlConnection (connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand ())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteNonQuery();
                }

            }
        }

        public static object ExecuteScalary(string sql ,params SqlParameter [] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteScalar();
                }

            }
        }
        //只用来执行查询结果比较少的sql
        public static DataTable ExecuteDataTables(string sql , params  SqlParameter [] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                    DataSet dataset = new DataSet();
                    adapter.Fill(dataset);
                    return dataset.Tables[0];

                }

            }
        }
        public  static object FromDBValue(object value)
        {
            if (value == DBNull.Value)
            {
                return null;

            }
            else
                return value;
        }

        public  static object ToDbValue(object value)
        {
            if (value == null)
            {
                return DBNull.Value;

            }
            else
                return value;
        }
    }
}

namespace ExecuteReader.DAL
{
    public  class CustomerDAL
    {
        //根据Id获取 GetById  Update  DeleteById GetAll  GetPageData(分页数据)
        // Insert (插入新数据)


        //把公共代码封装到一个方法中,避免重复性的代码,提高代码复用性
        private static Customer ToCustomer(DataRow row)
        {
            Customer cust = new Customer();
            cust.Id = (long)row["Id"];
            cust.Birthday = (DateTime?)SqlHelper.FromDBValue(row["Birthday"]);
            cust.Address = (string)row["Address"];
            cust.CustLevel = (int)row["CustLevel"];
            cust.TelNum = (string)row["TelNum"];
            return cust;
        }

        public static Customer GetById(long id )
        {
            DataTable dt = SqlHelper.ExecuteDataTables("select * from T_Customer where id = @Id",
                new SqlParameter("@Id", id));
            if (dt .Rows.Count <= 0 )
            {
                return null;

            }
            else if (dt.Rows.Count >1)
            {
                throw new Exception("严重错误,查出多条数据!");

            }
            else
            {
                DataRow row = dt.Rows[0];
               // Customer cust = new Customer();
                //cust.Id = (long)row["Id"];
                //cust.Birthday = (DateTime ?) SqlHelper .FromDBValue ( row["Birthday"]);
                //cust.Address = (string )row["Address"];

                //cust.CustLevel = (int )row["CustLevel"];
                //cust.TelNum = (string )row["TelNum"];
                //return cust;
               return  ToCustomer(row);
            }
         
        }
     public void  DeleteById(long id )
        {
            SqlHelper.ExecuteNonQuery("delete from T_Customer where Id = @Id",
                new SqlParameter("@Id", id));
        }
     public void Insert(Customer customer)
     {
         SqlHelper.ExecuteNonQuery(@" INSERT INTO [dbo].[T_Customer]
           ([Name]
           ,[Birthday]
           ,[Address]
           ,[TelNum]
           ,[CustLevel])
     VALUES
           (@Name,@Birthday,@Address,@TelNum,@CustLevel)",
           new SqlParameter ("@Name", SqlHelper .ToDbValue ( customer.Name )),
           new SqlParameter("@Birthday", customer.Birthday),
           new SqlParameter("@Address", customer.Address),
           new SqlParameter("@TelNum", customer.TelNum),
           new SqlParameter("@CustLevel", customer.CustLevel));
     }
        public void Update (Customer costomer)
     {
         SqlHelper.ExecuteNonQuery(@"Update [T_Costomer]
                    set [Name] = @Name 
                        ,[Birthday] = @Birthday
                        ,[Address] = @Address
                        ,[TelNum] = @TelNum
                        ,[CustLevel] = @CustLevel
                        where Id = @ Id ",
              new SqlParameter("@Name", costomer.Name),
              new SqlParameter("@Birthday", SqlHelper .ToDbValue ( costomer.Birthday)),
              new SqlParameter("@Address", costomer.Address),
              new SqlParameter("@TelNum", costomer.TelNum),
              new SqlParameter("@CustLevel", costomer.CustLevel),
               new SqlParameter("@Id", costomer.Id));
     }
        public Customer [] GetAll()
        {
            //DRY Don't Repeat yourself!
            DataTable table = SqlHelper.ExecuteDataTables("select * from T_Customer");
            Customer[] customers = new Customer[table.Rows.Count];
            for (int i = 0 ; i < table.Rows.Count ;i ++)
            {
                DataRow row = table.Rows[i];
                customers[i] = ToCustomer(row);
            }
            return customers;
        }

    }
}

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、资源1项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值