–编写EF增删改完整版项目
1.新建文件夹
2.打开你的Visual Studio创建一个新项目
3.创建一个ASP.NET应用程序(.NET Framework)选择空
当你创建完后就是这样:
然后我们就要开始进行对项目进行创建了
首先我们要创建三个类库
1.第一个类库为视图层 Models
2.第二个为数据访问层 DAL
3.第三个为业务逻辑层 BLL
当你创建完之后就会变成:
现在我们先不急着敲代码我们要开始一 一引用层与层之间的联系
1.数据访问层引用视图层
2.业务逻辑层引用数据访问层、视图层
3.我们的ASP.NET(.NET Framework)你一开始创建的 引用 业务逻辑层、视图层
如图所示接下来你就要一 一去引用当你引用完之后我们就要真正的开始了
第一步
1.在你的视图层里面重新添加新建项
2.在点击一个新建项里面找到数据点击第一个ADO.NET实体数据模型如下图
当你点击之后他就会显示
选择第一个来自数据库的EF设计器点击下一步
下一步之后会出现
点击新建连接、
2.连接的是你的数据库服务器名称、
3.登录到服务器选择SQL Server身份验证
4.在你的连接到数据库里面选择你要数据库名称
5.点击确定
在实体数据模型向导里面、选择是
就会出现下面这张图
然后点击进行下一步
又会弹出一个窗口直接点击下一步就行
然后弹出一个窗口
在实体数据模型向导里面
1.在你的表里面打上勾
注:这个项目现在仅限于一个表
2.在这个表里面的所有的东西打勾
然后点击完成他就会开始生成
可能需要一点时间所有请耐心等待
当你等待完成之后就会变成
之后我们要打开视图类里面的App.Config
1.选择关于你的数据库的代码
2.然后把他裁剪复制给Web.config
如下图:
<connectionStrings>
<add name="ChangeDBEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res:
//*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=DESKTOP-DFAA3LD;initial catalog=ChangeDB;user id=老许;
password=bugaosuni;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
当你完成这个之后你需要在数据访问层与ASP.NET(.NET Framework)里面引用视图层的
ASP.NET(.NET Framework)就是你的应用程序
但是你在引用的过程中你找不到EntityFramework这些
所以你需要找到视图层里引用的EntityFramework点击右键
在对象浏览器中查看就会出现他在哪里
就像这样:
然后引用他
在数据访问层里找到引用点击右键添加引用找到浏览
然后里面什么都没有
找到右下角有一个浏览、点击浏览把刚刚找到的路径输入到里面
你就会变成这样:
您放心只有两个
当你添加完之后打开你的数据访问层点击引用他就是这样的:
如果你在数据访问层和应用程序里面都添加了这些引用那么我们就开始在
数据访问层里面编写代码
1.一般我们创建一个类库的时候都会有一个Class.cs
2.然后我们需要帮他改名、名字是你的数据库名加DAO
3.然后点击去就可以开始编写代码了
DAO里面的Class.cs改名为UserDAO
在UserDAO里面编写数据访问层
编写代码为:
这是针对你等下要进行增删改的表的类容
ChangeDBEntities changeDB = new ChangeDBEntities();
/// <summary>
/// 查询所有表信息
/// </summary>
/// <returns></returns>
public IEnumerable<Tb_User> Select()
{
var reslut = (from user in changeDB.tb_user
select user).ToList();
return reslut;
}
/// <summary>
/// 查询指定ID的用户
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Tb_User SelectById(int id)
{
var user = (from u in changeDB.tb_user
where u.Id == id
select u).FirstOrDefault();
return user;
}
/// <summary>
/// 添加
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public int Add(Tb_User users)
{
changeDB.tb_user.Add(users);
//添加几条成功返回几条
return changeDB.SaveChanges();
}
/// <summary>
/// 删除指定用户
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public int DeleteById(int id)
{
var user = (from u in changeDB.tb_user
where u.Id == id
select u).FirstOrDefault();
changeDB.tb_user.Remove(user);
return changeDB.SaveChanges();
}
/// <summary>
/// 修改用户信息
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public int Update(Tb_User users)
{
changeDB.Entry<Tb_User>(users).State = EntityState.Modified;
return changeDB.SaveChanges();
}
如果你发现你的代码有些地方报错了
那么请把鼠标移到报错的地方因为你要using指令才能用
1.可以使用鼠标点击右键
2.可以Ctrl + .
如代码:
using Model;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
当你把UserDAO里面的类容写完之后
1.你要开始在业务逻辑层里面调用数据访问层的东西
2.所以你现在要在BLL里面创建一个类
3.当然当你创建了BLL类库的时候会自动生成一个Class类
4.现在你要把Class类改名成你的(自定义名)+ Service
如:UserService
5.在UserService编写调用数据访问层的代码
public class UserService
{
private UserDAO user = new UserDAO();
/// <summary>
/// 查询所有用户信息
/// </summary>
/// <returns></returns>
public IEnumerable<Tb_User> Select()
{
return user.Select();
}
/// <summary>
/// 根据指定ID查询信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Tb_User SelectById(int id)
{
return user.SelectById(id);
}
/// <summary>
/// 添加用户信息
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public int Add(Tb_User users)
{
return user.Add(users);
}
/// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public int DeleteById(int id)
{
return user.DeleteById(id);
}
/// <summary>
/// 修改
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public int Update(Tb_User users)
{
return user.Update(users);
}
public int Uptate(int Id,string Name,string Gender,string Telephone,DateTime Regdate,int UserType)
{
Tb_User users = new Tb_User();
users.Id = Id;
users.Name = Name;
users.Gender = Gender;
users.Telephone = Telephone;
users.Regdate = Regdate;
users.UserType = UserType;
return user.Update(users);
}
以下也是和数据访问层同理
using DAL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
如果这些你都弄完了那么现在我们要开始在应用程序里面开始做运行准备了
现在我们要在点击应用程序
1.使用鼠标右键点击添加
2.在点击添加后选择新建项
3.选择Webx窗体
如图:
然后选择添加之后我们就会出现这个窗体
看到左边的工具箱一栏了么
我们现在要在工具箱一栏找到一个 GridView 的工具
他是让我们进行我们需要把数据放进来的
现在我们还是要在左下角点击那个设计里面去你会看到
现在我们要开始连接对象了
现在我们需要点击这个图、他的右上角会出现一个三角
我们要点击这个三角
1.点击三角后选择数据源
2.点击新建数据源
3.点击对象
如图:
会出现一个配置数据源的窗体
然后需要你选择业务对象
一版我们选择的是BLL.(你的业务逻辑层里面的类)
如我的就是BLL.UserService
我们需要点击下一步
进行另外一个窗体
他要我们选择方法()、我们要选择的方法是业务逻辑层类里面的查询所有表数据的类
因为那个是你的第一个
如我的就是:Select(),返回IEnumerable<Tb_User>
然后点击完成就行了
当然:如果你的出不来你需要把业务逻辑层重新生成并且把应用程序(.NET)与你在里面创建的窗体设计为启动项与起始页就行
你就已经完成了第一项查询所有表结构的运行
当你可以运行出来了就是这样的
现在我们要做第二步
我们要开始进行删除
删除是需要我们进入到你的窗体的设计里面的
进入到设计里面后我们要编辑列
点击编辑列选择CommandField选择删除在后
点击添加就会变成
现在让我们回看设计就会变成
也可以看看码源里面是这样的:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" DataKeyNames="Id">
<Columns>
<asp:BoundField DataField="Id" HeaderText="学号" SortExpression="Id" />
<asp:BoundField DataField="Name" HeaderText="名字" SortExpression="Name" />
<asp:BoundField DataField="Gender" HeaderText="性别" SortExpression="Gender" />
<asp:BoundField DataField="Telephone" HeaderText="电话" SortExpression="Telephone" />
<asp:BoundField DataField="Regdate" HeaderText="学生日期" SortExpression="Regdate" />
<asp:BoundField DataField="UserType" HeaderText="是否会员" SortExpression="UserType" />
<asp:CommandField ShowDeleteButton="True" HeaderText="操作"/>
</Columns>
</asp:GridView>
如果现在变成我这样那么你都删除完成了百分之80了
现在我们现在需要在窗体里进行编辑
当然在这里编辑
点击进入是这样的:
在这里面我们要开始编辑删除的代码了
//删除
string masg = Request.QueryString["masg"];
if (!string.IsNullOrEmpty(masg))
Response.Write("<script>alert(" + masg + ")<script>");
这就是我们删除的代码
现在如果你想删除东西就可以删除了
你现在可以试试
好了你现在试完了我们需要进行下一步了
我们要开始进行编辑了
知道为什么要先编辑吗?因为增加要新建一个窗体而编辑不用
好了不说多了、我们开始吧
第一步:
1.我们要进入设计里面找到编辑列
2.点击编辑列选择CommandField选择编辑、更新、取消
如图点击添加后确定后再看你的设计就会变成
让我们看看码源是这样的
就是在你的删除后面加入了一个
这个是编辑的
<asp:CommandField ShowEditButton="True" HeaderText="操作" />
你以为这样就完了吗?
并没有我们还需要加入一些代码
而且是在码源里面加入代码
代码为:
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="DeleteById" SelectMethod="Select" TypeName="BLL.UserService" UpdateMethod="Uptate">
<DeleteParameters>
<asp:Parameter Name="id" Type="Int32"/>
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="Id" Type="Int32"/>
<asp:Parameter Name="Name" Type="String"/>
<asp:Parameter Name="Gender" Type="String"/>
<asp:Parameter Name="Telephone" Type="String"/>
<asp:Parameter Name="Regdate" Type="DateTime"/>
<asp:Parameter Name="UserType" Type="Int32"/>
</UpdateParameters>
</asp:ObjectDataSource>
如果你这些都弄完了那么你的编辑就完成了
现在让我们进行下一步吧 “添加新的数据”
首先我们需要在你的第一个项目里面添加一个HyperLink
当然这个也是在你的工具箱里面找到的
工具箱就是窗体左边的工具箱点击他然后查找HyperLink就可以了
你要放在你的表格上方
如图为:
码源为:(就是div下面的)
<div>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Add.aspx">添加新用户</asp:HyperLink>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" DataKeyNames="Id">
<Columns>
<asp:BoundField DataField="Id" HeaderText="学号" SortExpression="Id" />
<asp:BoundField DataField="Name" HeaderText="名字" SortExpression="Name" />
<asp:BoundField DataField="Gender" HeaderText="性别" SortExpression="Gender" />
<asp:BoundField DataField="Telephone" HeaderText="电话" SortExpression="Telephone" />
<asp:BoundField DataField="Regdate" HeaderText="学生日期" SortExpression="Regdate" />
<asp:BoundField DataField="UserType" HeaderText="是否会员" SortExpression="UserType" />
<asp:CommandField ShowDeleteButton="True" HeaderText="操作"/>
<asp:CommandField ShowEditButton="True" HeaderText="操作" />
</Columns>
</asp:GridView>
现在我把第一个窗体的所有码源给你看看是否跟我一样的
如果不一样赶紧改一下
<form id="form1" runat="server">
<div>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Add.aspx">添加新用户</asp:HyperLink>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" DataKeyNames="Id">
<Columns>
<asp:BoundField DataField="Id" HeaderText="学号" SortExpression="Id" />
<asp:BoundField DataField="Name" HeaderText="名字" SortExpression="Name" />
<asp:BoundField DataField="Gender" HeaderText="性别" SortExpression="Gender" />
<asp:BoundField DataField="Telephone" HeaderText="电话" SortExpression="Telephone" />
<asp:BoundField DataField="Regdate" HeaderText="学生日期" SortExpression="Regdate" />
<asp:BoundField DataField="UserType" HeaderText="是否会员" SortExpression="UserType" />
<asp:CommandField ShowDeleteButton="True" HeaderText="操作"/>
<asp:CommandField ShowEditButton="True" HeaderText="操作" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="DeleteById" SelectMethod="Select" TypeName="BLL.UserService" UpdateMethod="Uptate">
<DeleteParameters>
<asp:Parameter Name="id" Type="Int32"/>
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="Id" Type="Int32"/>
<asp:Parameter Name="Name" Type="String"/>
<asp:Parameter Name="Gender" Type="String"/>
<asp:Parameter Name="Telephone" Type="String"/>
<asp:Parameter Name="Regdate" Type="DateTime"/>
<asp:Parameter Name="UserType" Type="Int32"/>
</UpdateParameters>
</asp:ObjectDataSource>
</div>
</form>
然后你现在要开始创建第二个Web窗体了
现在你要进行的是点击应用程序选择添加 点击新建项
然后找到Web窗体
当然你可以改名也可以不改名称
我的是Add.((aspx)后缀不用加)
如图:
当这些你都弄完了我们要开始在你的Add里面去了
我们需要找到你的Add里面的工具箱
然后在工具箱里面找到TextBox,RadioButton,Button
这些按钮
因为你是添加所有你要添加什么你自己需要去定义
而我的是
1.如图:
2.码源:
<form id="form1" runat="server">
<div>
姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
性别:<asp:RadioButton ID="RadioButton1" runat="server" Text="男" GroupName="sex"/><asp:RadioButton ID="RadioButton2" runat="server" Text="女" GroupName="sex"/>
<br />
电话:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br />
注册日期:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<br />
会员:<asp:RadioButton ID="RadioButton3" runat="server" Text="VIP" GroupName="Type"/><asp:RadioButton ID="RadioButton4" runat="server" Text="普通" GroupName="Type"/>
<br />
<asp:Button ID="Button1" runat="server" Text="添加" OnClick="Button1_Click"/>
</div>
</form>
现在我们需要在你的第二个窗体Add.aspx.cs里进行编码了
如图:
你问我为什么你没有这个Button1 是因为你没有加一个OnClick=“Button1_Click” 这个
如码源为:
<asp:Button ID="Button1" runat="server" Text="添加" OnClick="Button1_Click"/>
你写完记得一定是编辑新的事件
现在是不是就有了
现在我们需要在 protected void Button1_Click(object sender, EventArgs e)
里面写我们需要的东西了
现在看码源:
public partial class Add : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Tb_User user = new Tb_User();
user.Name = this.TextBox1.Text;
user.Gender = this.RadioButton1.Checked == true ? "男" : "女";
user.Gender = this.RadioButton2.Checked == true ? "男" : "女";
user.Telephone = this.TextBox2.Text;
user.Regdate = DateTime.Parse(this.TextBox3.Text);
user.UserType = this.RadioButton3.Checked == true ? 1 : 0;
user.UserType = this.RadioButton4.Checked == true ? 1 : 0;
UserService service = new UserService();
int count = service.Add(user);
if (count>0)
{
Response.Write("<script>alert('添加成功');window.location.href='Defalut.aspx';</script>");
}
}
如果你现在看到了都是在报错那么回到我们上面说的你没有加using
所以他就会报错所有请你都帮他加好
如码源:
using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
好了这就是全部的增删改的程序
现在你可以运行了你现在运行看看是不是就可以了
现在给你看看我的查询、增删改
如图:
1.查询
2.增加
3.删除
4.编辑
当然记得要加上你的数据库哟!!!
是要有表的哟
其他的东西在一开始就自动帮你生成了
所有不需要担心按照我的敲就行
这就是简单的完整的增删改
你学会了吗、少年?
加油吧!