整体操作流程如下:
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>
   <label class="cols-5">发布时间:<%# Eval("Sun") %></label></div>
<div class="row">
<%# Eval("Content") %>
</div>
</div>
</ItemTemplate>
</asp:Repeater>