三层架构-DAL层

DAL层(增删改查方法)

  1. 创建DAL层使用类库
  2. 在DAL层创建类对应Model层(ps:起名方式 Model类名后加Service)
  3. 在DAL层添加引用: Model  System.Configuration  System.Data  System.Data.SqlClient

      使用某些引用时 先在解决方案资源管理器DAL层下的引用添加(右键 添加引用)

  4. 创建类后检查是否具有public属性 没有要手动加上 不然无法调用
  5. 查询方法(return SQLHelp的查询方法)

    仅全部    Select()   -> DataTable 或 List

    public static DataTable Select()
            {
                string sql = "select * from ProductCategory";
                return SQLHelp.Qurey(sql);
            }

    仅部分    Select(条件)   主键id  登录 ->对象

    public static DataTable Select(id)
            {
                string sql = "select * from ProductCategory where id="+id;
                return SQLHelp.Qurey(sql);
            }

    部分+全部    Select(带默认值的条件)  前提:->DataTable 或 List  (ps:模糊匹配使用like)

    public static DataTable Select(int id = 0, string name = "")
            {
                string sql = "select * from ProductCategory,Product where ProductCategory.Id=Product.CategoryId";
                if (id != 0)
                {
                    sql += " and Product.CategoryId=" + id;
                }
                if (name != "")
                {
                    sql += " and ProductName like '%" + name + "%'";
                }
                return SQLHelp.Qurey(sql);
            }

     

  6. 删除方法(return SQLHelp的非查询方法)

    调用NonQuery方法,返回int  Delete(主键/对象)

    public static int Delete(int id)
            {
                var sql = "delete from Product where Id=" + id;
                return DBHelp.NoQurey(sql);
            }

     

  7. 添加方法(return SQLHelp的非查询方法)

    调用NonQuery方法,返回int   Insert(实体对象)

    SQL语法: insert into task values('{0}','{1}',getdate(),1,null,'{2}')

    优先写死:使用固定值及SQL函数

    public static int Inset(Task task)
            {
                string sql = string.Format("insert into Task values({0},'{1}',default,1,null,{2})", task.TaskPriority, task.Content, task.ProjectID);
                return DBHelp.NoQuery(sql);
            }

     

  8. 修改方法(return SQLHelp的非查询方法)

    调用NonQuery方法,返回int   Update(实体对象) 

    SQL语法: update task set TaskState=2,FinishedTime=getdate() where TaskID={0}

    仅对需要修改的属性赋值,不需要修改的直接忽略 优先写死:使用固定值及SQL函数

    public static int Update(int pid)
            {
                string sql = "update Task set TaskState=2,FinishedTime=getdate() where TaskID=" + pid;
                return DBHelp.NoQuery(sql);
            }

     

  9. 根据ID查询(ps:在使用获取原数据时使用  return SQLHelp的查询方法 )

    调用Query方法  返回实体对象  Select(int id)   使用主键ID获取所有数据

    使用sql语句把查询到的数据保存在表类型中

    判断该表里是否有数据 如果没有 return null  如果有则 return 一个新对象保存数据

    public static Product Select(int id)
            {
                string sql = "select * from Product where Id=" + id;
                DataTable dt = DBHelp.Qurey(sql);
                if (dt.Rows.Count < 1)
                {
                    return null;
                }
                else
                {
                    DataRow row = dt.Rows[0];
                    return new Product()
                    {
                        Id = Convert.ToInt32(row["Id"]),
                        ProductName = Convert.ToString(row["ProductName"]),
                        MarketPrice = Convert.ToInt32(row["MarketPrice"]),
                        SellingPrice = Convert.ToInt32(row["SellingPrice"]),
                        CategoryId = Convert.ToInt32(row["CategoryId"]),
                        Introduction = Convert.ToString(row["Introduction"]),
                        IsOnSale = Convert.ToInt32(row["IsOnSale"]),
                        Addtime = Convert.ToDateTime(row["AddTime"])
                    };
                }
            }

     

  10. 最后注意用///对每个方法添加注释

  • 0
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

Rianana

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值