多表查询《增删查改》

整体操作流程如下:

1、创建完整SQL Server数据库和表

2、引用ADO.NET实体数据模型

3、创建EF项目

4、编辑DAL类

5、编辑BLL类

6、编写页面代码

7、编写视图后层代码

8、添加界面后台代码

9、运程序,修改bug,运行成功



一、新建数据库,新建两个表



二、设置两个表的主键和外键,操作图如下



表格名字不同,请使用自己的表名


三、创建项目,搭建三层架构


四、在Model层引用ADO.NET实体数据模型

右键Model,选择添加,选择新建项目在弹出来的窗体中选择数据或者Data,在选择ADO.NET实体数据模型。选择新建连接选择来自数据库的EF设计器,选择你所需要的数据库,选择你所需要的显示的表。点击确认即可完成。


五、编写DAL类,编写增删查改,

1、查询,以下有两种方式

     查询所有的表信息

     public List<Article> Select()

        {

            //第一种方式

            /*var reslut = (from u in twoDown.Article

                          select u).ToList();

            return reslut;*/

            //第二种方式

            return twoDown.Article.Select(p => p).ToList();

        }


2、 根据类别查询

public List<Article> SelectByCatelogId(int id)

        {

            var reslut = from u in twoDown.Article

                        where u.Typt == id

                        select u;

            return reslut.ToList();

        }


3、查询作者,以下两种方式

public List<Article> Select(string art)

        {

            //第一种方式

            /*var reslut = (from u in twoDown.Article

                          select u).ToList();

            return reslut;*/

            //第二种方式

            return twoDown.Article.Select(p => p).ToList();

        }


4、多表进行连接

public object Query()

        {

            var reslut = (from a in twoDown.Article

                          join c in twoDown.Catelog on a.Typt equals c.Id

                          select new {编号=a.Id ,标题=a.Title,作者= a.Anthor,内容= a.Content,类别= a.Typt,Typt=c.TypeName });

            return reslut.ToList();

        }


5、根据ID查询表信息

public Article Select(int id)

        {

            var reslut = (from u in twoDown.Article

                          where u.Typt == id

                          select u).Single();

            return reslut;

        }


6、添加文章    

public int Add(Article article)

        {

            twoDown.Article.Add(article);

            int count = twoDown.SaveChanges();

            return count;

        }


7、根据ID删除指定用户的信息

public int DeleteById(int id)

        {

            var reslut = (from u in twoDown.Article

                        where u.Id == id

                        select u).FirstOrDefault();

            twoDown.Article.Remove(reslut);

            return twoDown.SaveChanges();

        }


8、删除

public int Delete(Article article)

        {

            twoDown.Article.Remove(article);

            int count = twoDown.SaveChanges();

            return count;

        }


9、修改

public int Update(Article article)

        {

            twoDown.Entry<Article>(article).State = EntityState.Modified;

            int count = twoDown.SaveChanges();

            return count;

        }


六、编写另外一个DAL类

private TwoDownEntities TD = new TwoDownEntities();


        public List<Catelog> Select()

        {

            var reslut = from c in TD.Catelog

                        select c;

            return reslut.ToList();

        }


七、编写BLL类

1、添加一个私有字段,用于调数据访问对象

public ArticleDAO aAdo = new ArticleDAO();

2、查询所有表信息

public List<Article> Select()

        {

            return Articles.Select();

        }


       3、查询根据作者

   public List<Article> Select(string art)

        {

            return Articles.Select(art);

        }


        4、根据类别查询

      public List<Article> SelectByCatelogId(int id)

        {

            return Articles.SelectByCatelogId(id);

        }


       5、 多表连接查询

        public object Query()

        {

            return Articles.Query();

        }


       6、 根据id查询信息

       public Article Select(int id)

        {

            return Articles.Select(id);

        }


     7、 添加文章

     public int AddArticle(Article article)

        {

            return Articles.Add(article);

        }


       8、根据id来删除

       public int DeleteById(int id)

        {

            return Articles.DeleteById(id);

        }


     9、 删除

      public int Delete(Article article)

        {

            return Articles.Delete(article);

        }


      10  、 修改

    public int Update(Article article)

        {

            return Articles.Update(article);

        }


       11、编辑

        public int Update(int Id,string Title,string Anthor,string Content,int Typt,string Sun)

        {

            Article article = new Article();

            article.Id = Id;

            article.Title = Title;

            article.Anthor = Anthor;

            article.Content = Content;

            article.Typt = Typt;

            article.Sun = Sun;

            return Articles.Update(article);

        }


八、在另外一个BLL类编写代码,如下

private CatelogDAO Catelog = new CatelogDAO();

        public List<Catelog> Select()

        {

            return Catelog.Select();

        }


九、编写视图层 右键web项目,选择添加,选择新建窗体,转到设计视图,用工具栏拖控件到设计视图完成界面设计,



1、首先,先编写添加信息和作者代码

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Add.aspx">添加信息</asp:HyperLink>


            作者:<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"></asp:DropDownList>


2、在Grdview控件绑定数据生成之后代码如下:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" DataKeyNames="Id">

                <Columns>

                    <asp:BoundField DataField="Id" HeaderText="编号" SortExpression="Id" />

                    <asp:BoundField DataField="Title" HeaderText="标题" SortExpression="Title" />

                    <asp:BoundField DataField="Anthor" HeaderText="作者" SortExpression="Anthor" />

                    <asp:BoundField DataField="Content" HeaderText="内容" SortExpression="Content" />

                    <asp:BoundField DataField="Typt" HeaderText="类别" SortExpression="Typt" />

                    <asp:BoundField DataField="Sun" HeaderText="日期" SortExpression="Sun" />

                    <asp:CommandField ShowDeleteButton="True" HeaderText="删除" />

                    <asp:CommandField ShowEditButton="True"  HeaderText="编辑" />

                </Columns>

            </asp:GridView>


3、在加入以下数据

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Select" TypeName="BLL.ArticleSerivce" DeleteMethod="DeleteById" UpdateMethod="Update">

                <DeleteParameters>

                    <asp:Parameter Name="id" Type="Int32" />

                </DeleteParameters>

                <UpdateParameters>

                    <asp:Parameter Name="Id" Type="Int32" />

                    <asp:Parameter Name="Title" Type="String" />

                    <asp:Parameter Name="Anthor" Type="String" />

                    <asp:Parameter Name="Content" Type="String" />

                    <asp:Parameter Name="Typt" Type="String" />

                    <asp:Parameter Name="Sun" Type="String" />

                </UpdateParameters>

            </asp:ObjectDataSource>


十、在下面这个视图层编写网页


<div>

            <b>添加文章</b>

            <div class="row">

                <div class="cols-4">

                    标题:

                </div>


                <div class="cols-8">

                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

                </div>

            </div>

              <div class="row">

                <div class="cols-4">

                    作者:

                </div>


                <div class="cols-8">

                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>

                </div>

            </div>

              <div class="row">

                <div class="cols-4">

                    内容:

                </div>


                <div class="cols-8">

                    <asp:TextBox ID="TextBox3" runat="server" TextMode="MultiLine"></asp:TextBox>

                </div>

            </div>

              <div class="row">

                <div class="cols-4">

                    类型:

                </div>


                <div class="cols-8">

                    <asp:DropDownList ID="DropDownList1" runat="server" DataTextField="TypeName" DataValueField="Id" ></asp:DropDownList>

                </div>

            </div>

              <div class="row">

                <div class="cols-4">

                    时间:

                </div>


                <div class="cols-8">

                    <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>

                </div>

            </div>

              <div class="row">

                <div class="cols-4">

                </div>

                <div class="cols-8">

                    <asp:Button ID="Button1" runat="server" Text="发表文章" OnClick="Button1_Click" />

                </div>

            </div>

十一、在这个视图层加入类别,连接数据

<div class="row">

                <label class="cols-5">类别:</label>

                <div class="cols-5">

                    <asp:DropDownList ID="DropDownList1" runat="server" DataTextField="TypeName" DataValueField="Id" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>

                </div>

            </div>


            <asp:Repeater ID="Repeater1" runat="server">

                <ItemTemplate>

                    <div class="row">

                        <div class="row"></div>

                        <div class="row">

                            <label class="cols-5">作者:<%# Eval("Anthor") %></label>

                            &nbsp &nbsp<label class="cols-5">发布时间:<%# Eval("Sun") %></label></div>

                        <div class="row">

                            <%# Eval("Content") %>

                        </div>

                    </div>

                </ItemTemplate>

            </asp:Repeater>


十三、然后你就可以开始运行了,修改bug,就行了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356

推荐阅读更多精彩内容

  • 小陈解说 首先要创建好数据库 create database MyDB 然后创建和Article这两个表Catel...
    妻奴阅读 1,854评论 0 0
  • 小陈解说 首先要创建好数据库 create database MyDB 然后创建和Article这两个表Catel...
    妻奴阅读 1,028评论 0 0
  • --编写EF题目 1.创建文件夹 2.创建三层架构 3.model层连接数据库 4.编写增删查改 5.编写视图层 ...
    夜盲症阅读 1,656评论 0 1
  • 小陈解说 首先要创建好数据库 create database MyDB 然后创建和Article这两个表Catel...
    妻奴阅读 154评论 0 0
  • 先建三层构造(DataModel、DAL、BLL) 1.在DAL层添加2个类 1.> public class ...
    梦幻之游阅读 185评论 0 0