database fiest增删改查实践
首先就是实现数据库优先
创建model文件夹,引入数据库
添加
添加实体数据模型
选择ef设计器
如果有的话就确定,没有就新建
服务器名本机是localhost,使用sql身份验证,选择数据库,接下来的界面选择所有表,到图3界面的时候记得选中“是,~”
然后根据model层搭建三层架构
DAL层代码
//模糊查询所有+分页
public static List<girl1907> SelectAll(string name,int pagenow,int pagesize)
{
using (rj1907Entities db = new rj1907Entities())
{
//查询所有
//模糊查询
//分页
int rows = (pagenow - 1) * pagesize;
//条件筛选+排序+分页
List<girl1907> girl1907s = db.girl1907.Where(o => o.nickName.Contains(name)).OrderBy(o=>o.id).Skip(rows).Take(pagesize).ToList();
return girl1907s;
}
}
//添加
public static bool InsertInfo(string name,string introduce)
{
using (rj1907Entities db = new rj1907Entities())
{
//声明表对象
girl1907 g = new girl1907();
//赋值
g.id = System.Guid.NewGuid().ToString("N");
g.createDate = DateTime.Now;
g.nickName = name;
g.introduce = introduce;
//添加到表
db.girl1907.Add(g);
//保存到数据库
int rows = db.SaveChanges();
return rows > 0;
}
}
//修改
public static bool UpdateInfo(string id,string nick,string introduce)
{
using (rj1907Entities db = new rj1907Entities())
{
try
{
//筛选到要修改的数据
girl1907 girl1907 = db.girl1907.Where(o => o.id == id).SingleOrDefault();
//修改
girl1907.nickName = nick;
girl1907.introduce = introduce;
//保存
int rows = db.SaveChanges();
return rows > 0;
}
catch (Exception)
{
//id冲突
return false;
}
}
}
//删除
public static bool DeleteById(string id)
{
using (rj1907Entities db = new rj1907Entities())
{
try
{
//筛选到数据
girl1907 girl1907 = db.girl1907.Where(o => o.id == id).SingleOrDefault();
//删除
db.girl1907.Remove(girl1907);
int rows = db.SaveChanges();
return rows > 0;
}
catch (Exception)
{
return false;
}
}
}
//根据id查询信息
public static girl1907 SelectById(string id)
{
using (rj1907Entities db = new rj1907Entities())
{
try
{
return db.girl1907.Where(o => o.id == id).SingleOrDefault();
}
catch (Exception)
{
return null;
}
}
}
BLL层依次调用DAL层代码即可
页面层
<div>
<div style="text-align:center;margin:10px;">
<asp:Button runat="server" ID="button4" Text="添加" OnClick="button4_Click" CssClass="btn btn-primary" Width="200px" />
</div>
<table class="table table-hover">
<tr>
<th>编号</th>
<th>时间</th>
<th>姓名</th>
<th>介绍</th>
</tr>
<asp:Repeater runat="server" ID ="repeater1" OnItemCommand="repeater1_ItemCommand">
<ItemTemplate>
<tr>
<td><%# Eval("id") %></td>
<td><%# Eval("createDate") %></td>
<td><%# Eval("nickName") %></td>
<td><%# Eval("introduce") %></td>
<td>
<asp:LinkButton runat="server" ID="btn1" Text="修改" CommandArgument='<%# Eval("id") %>' CommandName="updates" CssClass="btn btn-primary"></asp:LinkButton>
<asp:LinkButton runat="server" ID="btn2" Text="删除" CommandArgument='<%# Eval("id") %>' CommandName="deletes" CssClass="btn btn-primary" OnClientClick="return confirm('是否删除?')"></asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<div style="text-align:center;">
<asp:Button runat="server" ID="button1" Text="上一页" OnClick="button1_Click" CssClass="btn btn-primary" />
<span style="font-weight:bold;"><asp:Label runat="server" ID="txt"></asp:Label></span>
<asp:Button runat="server" ID="button2" Text="下一页" OnClick="button2_Click" CssClass="btn btn-primary" />
</div>
</div>
首行是添加按钮
接下来是表格+Repeater控件
最后是上一页下一页按钮
其中添加按钮是跳转到添加界面进行添加
以及页面显示数据
repeater1.DataSource = rj1907BLL.SelectAll(str, pagenow, pagesize);
repeater1.DataBind();
同时在表格里添加了LinkButton按钮,所以OnItemCommand事件
if (e.CommandName.Equals("updates"))
{
string id = e.CommandArgument.ToString();
Response.Redirect("Addinfo.aspx?id="+e.CommandArgument);
}
else if (e.CommandName.Equals("deletes"))
{
string id = e.CommandArgument.ToString();
if (rj1907BLL.DeleteById(id))
{
Response.Write("<script>alert('成功');window.location.href='Default'</script>");
}
else
{
Response.Write("<script>alert('失败')</script>");
}
}
通过传过来的值判断修改和删除,在分别执行修改跳转和删除判断
然后是添加页面,此界面根据传过来的id值判断是否是修改和添加操作
<form id="form1" runat="server">
<div>
<link href="Content/bootstrap.css" rel="stylesheet" />
<script src="Scripts/jquery-3.4.1.js"></script>
<script src="Scripts/bootstrap.min.js"></script>
<p>
昵称:<asp:TextBox runat="server" ID="nickname" placeholder="请输入昵称" CssClass="form-control"></asp:TextBox>
</p>
<p>
简介:<asp:TextBox runat="server" ID="introduce" placeholder="请输入简介" CssClass="form-control"></asp:TextBox>
</p>
<p>
<asp:Button runat="server" ID="btn" OnClick="btn_Click" CssClass="btn btn-primary" Text="添加" />
<asp:Button runat="server" ID="btn1" OnClick="btn1_Click" CssClass="btn btn-primary" Text="修改" />
</p>
</div>
</form>
页面加载事件
if (!IsPostBack)
{
if (Request.QueryString["id"] != null)
{
id = Request.QueryString["id"];
btn.Style["display"] = "none";
btn1.Style["display"] = "block";
girl1907 g = rj1907BLL.SelectById(id);
nickname.Text = g.nickName;
introduce.Text = g.introduce;
}
else
{
btn1.Style["display"] = "none";
btn.Style["display"] = "block";
}
}
判断是否有值,有值就是修改,取值赋值;无值就是添加
添加操作
string Nickname = this.nickname.Text;
string Introduce = this.introduce.Text;
if (string.IsNullOrEmpty(Nickname) |string.IsNullOrEmpty(Introduce))
{
return;
}
if(rj1907BLL.InsertInfo(Nickname, Introduce))
{
Response.Redirect("Default.aspx");
}
else
{
Response.Write("<script>alert('添加失败!')</script>");
}
修改操作
string Nickname = this.nickname.Text;
string Introduce = this.introduce.Text;
if (rj1907BLL.UpdateInfo(id ,Nickname, Introduce))
{
Response.Write("<script>alert('修改成功!');window.location.href='Default.aspx'</script>");
}
else
{
Response.Write("<script>alert('修改失败!')</script>");
}