双表技术文章

整体操作流程如下:

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()

        {

            MyDBEntities db = new MyDBEntities();

            /*var result = from article in db.Article

                        select article;

            return result.ToList();*/

            //方法查询函数

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

        }

2、根据ID查询

public Article Select(int id)

        {

            MyDBEntities db = new MyDBEntities();

            var result =(from article in db.Article

                        where article.Id==id

                        select article).Single();

            return result;

        }

3、添加文章

public int Add(Article article)

        {

            MyDBEntities db = new MyDBEntities();

            db.Article.Add(article);

            //写入数据库,保存写入成功的记录条数

            int count = db.SaveChanges();

            return count;

        }

4、删除文章

     public int Remove(Article article)

        {

            MyDBEntities db = new MyDBEntities();

            db.Article.Remove(article);

            int count = db.SaveChanges();

            return count;

        }

5、修改文章

public int Update(Article article)

        {

            MyDBEntities db = new MyDBEntities();

            //设置对象状态

            db.Entry<Article>(article).State = System.Data.Entity.EntityState.Modified;

            int count = db.SaveChanges();

            return count;

        }


六、编写BLL类

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

public ArticleDAO aAdo = new ArticleDAO();

2、添加文章

public int AddArticle(Article article)

        {

            return aAdo.Add(article);

        }

3、查询所有数据

public List<Article> Select()

        {

            return aAdo.Select();

        }

4、根据ID查询单个数据

public Article Select(int id)

        {

            return aAdo.Select(id);

        }

5、添加文章,添加数据

public int Add(Article article)

        {

            return aAdo.Add(article);

        }



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

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

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

2、添加数据

<Columns>

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

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

                    <asp:BoundField DataField="Author" HeaderText="Author" SortExpression="Author" />

                    <asp:BoundField DataField="Coutent" HeaderText="Coutent" SortExpression="Coutent" />

                    <asp:BoundField DataField="Catelogid" HeaderText="Catelogid" SortExpression="Catelogid" />

                    <asp:BoundField DataField="PushDate" HeaderText="PushDate" SortExpression="PushDate" />

                </Columns>

3、连接BLL类自动生成数据

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Select" TypeName="BLL.AritcleService"></asp:ObjectDataSource>

4、加入一个Button按钮

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


八、添加页面代码

<div>

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

            <br />

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

            <br />

            文章内容:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>

            <br />

            类别:<asp:DropDownList ID="DropDownList1" runat="server" DataTextField="name" DataValueField="id"></asp:DropDownList>

            <br />

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

        </div>


九、编写视图层后台代码

1、引用方法并添加跳转后台代码

AritcleService aritcleService = new AritcleService();

        protected void Page_Load(object sender, EventArgs e)

        {

            if (!IsPostBack)

            {

                //定义一个msg接收添加页面传过来的msg

                string msg = Request.QueryString["msg"];

                if (!string.IsNullOrEmpty(msg))

                {

                    Response.Write("<script>alert('添加成功!')</script>");

                }

            }

            添加之后

            //if (!IsPostBack)

            //{

            //    Response.Write("<script>alert('新增成功!')</script>");

            //}

        }

        protected void Button1_Click(object sender, EventArgs e)

        {

            Response.Redirect("Add.aspx");

        }


十、添加后台代码

1、实例化DAL两个类,展示数据,绑定数据:

//实例化DAL两个类

private CatelogService catelogService = new CatelogService();

        private AritcleService aritcleService = new AritcleService();

//绑定数据,展示数据

        protected void Page_Load(object sender, EventArgs e)

        {

            if (!IsPostBack)

            {

                             //绑定数据

                this.DropDownList1.DataSource = catelogService.Select();

                          //展示数据

                this.DropDownList1.DataBind();

            }

        }

2、在Button里面添加数据

protected void Button1_Click(object sender, EventArgs e)

        {

            Article article = new Article();

            article.Title = this.TextBox1.Text;

            article.Author = this.TextBox2.Text;

            article.Coutent = this.TextBox3.Text;

            article.Catelogid = int.Parse(this.DropDownList1.SelectedValue);

            article.PushDate = DateTime.Now;

            //声明一个变量来接收执行后的结果

            int result= aritcleService.Add(article);

            //判断是否添加成功

            if (result > 0)

            {

                //成功了就执行这段代码

                //~/zhuye.aspx这是跳转到的那个页面  ?msg=添加成功给zhuye的msg赋值

                Response.Redirect("~/zhuye.aspx?msg=添加成功");

            }

            else

            {

                Response.Write("<script>alert('添加失败')</script>");

            }

            //if (result>0)

            //{

            //    Response.Redirect("WebForm1.aspx");

            //}

        }

    }

十一、完成代码编写,进行调试,修改bug,进行运行项目,完成多表操作

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容