三层

</pre><pre name="code" class="csharp"> class StudentDAL
    {
        public static int GetCount()
        {
            return (int)SqlHelper.ExecuteScalary("select count(*) from T_Student ");
            
        }
        public static  void DeleteById(long id)
        {
            SqlHelper.ExecuteNonQuery("delete  from T_Student where Id = @Id ",
                new SqlParameter("@Id", id));
        }
            //如果列非常多,参数机会非常多,要把参数封装到Model中

        public static object ToDBValue(object value)
        {
            if (value == null)
            {
                return DBNull.Value;
            }
            else return value;
        }
        public static  void Insert(Student student)
        {
            //object age;
            //if (student.Age == null )
            //{
            //    age = DBNull.Value;
            //}
            //else
            //{
            //    age = student.Age;
            //}
            //object name;
            //if (student.Name == null)
            //{
            //    name = DBNull.Value;
            //}
            //else
            //{
            //    name = student.Name;
            //}
            SqlHelper.ExecuteNonQuery(@"insert into T_Student (Name,Age,Height)
                values (@Name,@Age,@Height)",
                 new SqlParameter("@Name", ToDBValue (student.Name )),
                new SqlParameter("@Age", ToDBValue(student .Age )),
                 new SqlParameter("@Height", student.Height));
        }

        public  static object FromDBValue ( object value )
        {
            if (value == DBNull.Value)
            {
                return null;
            }
            else
                return value;
        }
        //DAL不要返回Data Table  dataRow等ADO.NET的类
        public   static Student GetById(long Id)
        {
            DataTable table = SqlHelper.ExecuteDataTables("select * from T_Student where Id = @Id",
                new SqlParameter("@Id", Id));
            if (table.Rows.Count <= 0 )
            {
                return null;
            }
            else if (table .Rows .Count   >1)
            {
                throw new Exception("Id 重复");
            }
            else
            {
                DataRow row = table.Rows[0];
                Student student = new Student();
                student.Id = (long)row["Id"];
                student.Name = (string)FromDBValue(row["Name"]);
                student.Age = (int ?)FromDBValue(row["Age"]);
                student.Height = (int)row["Height"];

                return student ;
            }
        }


    }

 class Student
    {
        //对于可空列。要注意 int? 的问题

        public long Id { get; set; }
        public string Name{get ;set ;}
        public int? Age {get ; set ;}
        public decimal? Height { get; set; }

    }

    private void Button_Click(object sender, RoutedEventArgs e)
        {
            //UI界面层  xaml.cs
            int  count =  StudentDAL.GetCount();
            MessageBox.Show(count.ToString());
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            StudentDAL.DeleteById(12);
        }

        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            Student student = new Student();
          //  student.Name = "hahah";
           // student.Age = 31;
            student.Height = 123;
            StudentDAL.Insert(student);
        }

        private void Button_Click_3(object sender, RoutedEventArgs e)
        {
          Student student =   StudentDAL.GetById(6);
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值