此示例在于 在aspx网页中直接操作数据库 实现简单的增删改查和分页功能
也许查找和分页会慢一些再做
不过思路都差不多
好 开始
先引入 EntityFramwork
创建一个页面 命名为 ShoppingMall
//.cs
protected db_NetShopEntities1 dbContext = new db_NetShopEntities1();
初始化一下
//.aspx
<table>
<tr>
<% foreach (var Model in dbContext.tb_GoodsInfo){%>
<td id><%=Model.GoodsID %> </td>
<td> <%=Model.GoodsName %></td>
<td> <%=Model.GoodsKind %></td>
<td><%=Model.GoodsPhoto %> </td>
<td> <%=Model.GoodsPrice %></td>
<td> <%=Model.GoodsIntroduce %></td>
<td> <a href="EditButton.aspx?Id=<%=Model.GoodsID%>" title="Edit" class="aListEdit" ><img align="absmiddle" alt="Edit" src="/images/edit.gif" /></a></td>
<td> </td>
</tr>
<%} %>
</table>
这样打开网页页面的时候,就会以文本显示出数据库存储的信息
<td> <a href="EditButton.aspx?Id=<%=Model.GoodsID%>" title="Edit" class="aListEdit" ><img align="absmiddle" alt="Edit" src="/images/edit.gif" /></a></td>
做一个能够读取数据id的按钮 以?id= 方式向另一个页面传值
再新建一个EditButton.aspx 引入
//cs
protected IQueryable<tb_GoodsInfo> lstModel;
protected db_NetShopEntities1 dbContext = new db_NetShopEntities1();
string varvalue = Request.Params["Id"]; int GoodsID = Convert.ToInt32(varvalue);
获取GoodsID 为上一个页面?Id=
传递的参数
获取GoodsID 所在的行数
lstModel = dbContext.tb_GoodsInfo.Where(p => p.GoodsID == GoodsID).Select(p => p);
打个比方 如果 GoodsID = 1 那么 lstModel就会装载那一条的数据
```
<–aspx–>
<tr> <td><asp:TextBox ID="txtGoodsID" runat="server"></asp:TextBox></td> </tr>
<tr> <td> <asp:TextBox ID="txtGoodsName" runat="server"></asp:TextBox></td> </tr>
<tr> <td> <asp:TextBox ID="txtGoodsKind" runat="server"></asp:TextBox></td> </tr>
<tr> <td> <asp:TextBox ID="txtGoodsPhoto" runat="server"></asp:TextBox></td> </tr>
<tr> <td> <asp:TextBox ID="txtGoodsPrice" runat="server"></asp:TextBox></td> </tr>
<tr> <td><asp:TextBox ID="txtGoodsIntroduce" runat="server"></asp:TextBox></td> </tr>
</tr>`
做几个文本框用于存放读取的数据
回到cs页面
var txtGoodsIDText = dbContext.tb_GoodsInfo.Where(p => p.GoodsID == GoodsID).Select(p => p.GoodsID).FirstOrDefault();
var txtGoodsNameText = dbContext.tb_GoodsInfo.Where(p => p.GoodsID == GoodsID).Select(p => p.GoodsName).FirstOrDefault();
var txtGoodsKindText = dbContext.tb_GoodsInfo.Where(p => p.GoodsID == GoodsID).Select(p => p.GoodsKind).FirstOrDefault();
var txtGoodsPhotoText = dbContext.tb_GoodsInfo.Where(p => p.GoodsID == GoodsID).Select(p => p.GoodsPhoto).FirstOrDefault();
var txtGoodsPriceText = dbContext.tb_GoodsInfo.Where(p => p.GoodsID == GoodsID).Select(p => p.GoodsPrice).FirstOrDefault();
var txtGoodsIntroduceText = dbContext.tb_GoodsInfo.Where(p => p.GoodsID == GoodsID).Select(p => p.GoodsIntroduce).FirstOrDefault();
txtGoodsID.Text = Convert.ToString(txtGoodsIDText);
txtGoodsName.Text = txtGoodsNameText.ToString();
txtGoodsKind.Text = txtGoodsKindText.ToString();
txtGoodsPhoto.Text = txtGoodsPhotoText.ToString();
txtGoodsPrice.Text = txtGoodsPriceText.ToString();
txtGoodsIntroduce.Text = txtGoodsIntroduceText.ToString();
拿到GoodsId所在行的数据
装入aspx文本框
这里要切记 !isPostBack 很重要
接下来就是几个功能 先代码 有空再写
protected void ButtonEdit_Click(object sender, EventArgs e)
{
{
tb_GoodsInfo Model = new tb_GoodsInfo()
{
GoodsID = Convert.ToInt32(txtGoodsID.Text),
GoodsName = txtGoodsName.Text,
GoodsKind = txtGoodsKind.Text,
GoodsPhoto = txtGoodsPhoto.Text,
GoodsPrice = Convert.ToDecimal(txtGoodsPrice.Text),
GoodsIntroduce = txtGoodsIntroduce.Text,
};
//Model.GoodsName = txtGoodsName.Text;
//dbContext.tb_GoodsInfo.Add(Model);
//dbContext.Entry(Model).State = EntityState.Deleted;
dbContext.tb_GoodsInfo.Attach(Model);
//dbContext.Entry<tb_GoodsInfo>(Model).State = System.Data.EntityState.Detached;
// dbContext.Entry(Model).Property<string>(p => p.GoodsName).IsModified = true;
dbContext.Entry<tb_GoodsInfo>(Model).State = EntityState.Modified;
// dbContext.SaveChanges();
dbContext.SaveChanges();
var conItem = dbContext.SaveChanges();
Response.Write("返回受影响值" + conItem);
}
}
protected void ButtonDel_Click(object sender, EventArgs e)
{
tb_GoodsInfo Model = new tb_GoodsInfo()
{
GoodsID = Convert.ToInt32(txtGoodsID.Text),
GoodsName = txtGoodsName.Text,
GoodsKind = txtGoodsKind.Text,
GoodsPhoto = txtGoodsPhoto.Text,
GoodsPrice = Convert.ToDecimal(txtGoodsPrice.Text),
GoodsIntroduce = txtGoodsIntroduce.Text,
};
dbContext.tb_GoodsInfo.Attach(Model);
dbContext.Entry<tb_GoodsInfo>(Model).State = EntityState.Deleted;
var conItem = dbContext.SaveChanges();
Response.Write("返回受影响值" + conItem);
}
protected void ButtonAdd_Click(object sender, EventArgs e)
{
tb_GoodsInfo Model = new tb_GoodsInfo()
{
GoodsID = Convert.ToInt32(txtGoodsID.Text),
GoodsName = txtGoodsName.Text,
GoodsKind = txtGoodsKind.Text,
GoodsPhoto = txtGoodsPhoto.Text,
GoodsPrice = Convert.ToDecimal(txtGoodsPrice.Text),
GoodsIntroduce = txtGoodsIntroduce.Text,
};
dbContext.tb_GoodsInfo.Add(Model);
var conItem = dbContext.SaveChanges();
Response.Write("返回受影响值" + conItem);
}