关于c#购物车的地址的增删改查(mvc,详细注释) [操作系统入门]
就是简简单单的增删改查,也没什么特殊的或者特别难的业务逻辑,二级联动用一张表的自连接做的,注释都加在代码中了,不多说了,代码如下:
1.首先是我们的实体类数据模型层(model)
地址详情表:
using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace G5.Exam03.Day12.Models{
publicclass ShAddress{
publicint AId { get; set; }publicstring AName { get; set; }publicstring Area { get; set; }publicstring Dzhi { get; set; }publicstring hanSet { get; set; }}
}
ShAddress
二级联动用的区域表:
using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace G5.Exam03.Day12.Models{
publicclass Qy{
publicint Id { get; set; }publicstring Name { get; set; }publicint QId { get; set; }}
}
Qy
2.ado调用:
地址的dal层:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using G5.Exam03.Day12.Models;namespace G5.Exam03.Day12.Dal{
publicclass AddressDal{
DBHelper db
= new DBHelper();//地址显示public List<ShAddress> GetList()
{
string sql = "select * from ShAddress";
return db.GetToList<ShAddress>(sql);
}
//删除功能
publicint Del(int id)
{
string sql = $"delete from ShAddress where AId={id}";
return db.ExecuteNonQuery(sql);
}
//添加的sql语句及方法
publicint Upt(ShAddress model)
{
string sql = $"Update ShAddress set AName=‘{model.AName}‘,Area=‘{model.Area}‘,Dzhi=‘{model.Dzhi}‘,hanSet=‘{model.hanSet}‘ where AId={model.AId}";
return db.ExecuteNonQuery(sql);
}
}
}
AddressDal
省市及添加,反填的dal层:
这两个ado调用层其实可以写在一块的,具体看您要实现的功能及要求:
using G5.Exam03.Day12.Models;using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace G5.Exam03.Day12.Dal{
publicclass AddDal{
DBHelper db
= new DBHelper();//省市下拉public List<Qy> GetSsList(int qid)
{
string sql = $"select * from Qy where QId={qid}";
return db.GetToList<Qy>(sql);
}
//添加的sql语句及方法
publicint Add(ShAddress model)
{
string sql = $"insert into ShAddress values (‘{model.AName}‘,‘{model.Area}‘,‘{model.Dzhi}‘,‘{model.hanSet}‘)";
return db.ExecuteNonQuery(sql);
}
//根据id查询数据进行反填
public List<ShAddress> GetListId(int id)
{
string sql = $"select * from ShAddress where AId={id}";
return db.GetToList<ShAddress>(sql);
}
}
}
AddDal
3.控制器(视图)如下(这里其实创建一个控制器就好,具体看要求):
using G5.Exam03.Day12.Dal;using G5.Exam03.Day12.Models;using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Web;using System.Web.Mvc;namespace G5.Exam03.Day12.Controllers{
publicclass AddressController : Controller{
AddressDal dal
= new AddressDal();// GET: Addresspublic ActionResult Index()
{
return View();
}
publicint Del(int id)
{
return dal.Del(id);
}
[HttpGet]
public JsonResult GetList()
{
return Json(dal.GetList(),JsonRequestBehavior.AllowGet);
}
public ActionResult Upt(int id)
{
ViewBag.id = id;
return View();
}
[HttpPost]
publicint Upt(ShAddress model)
{
return dal.Upt(model);
}
//根据id获取地址信息->反填
[HttpPost]
public JsonResult GetId(int id)
{
AddDal add = new AddDal();
return Json(add.GetListId(id), JsonRequestBehavior.AllowGet);
}
}
}
AddressController
using G5.Exam03.Day12.Dal;using G5.Exam03.Day12.Models;using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace G5.Exam03.Day12.Controllers{
publicclass AddController : Controller{
AddDal add
= new AddDal();// GET: Add//为添加视图提供方法public ActionResult Add()
{
return View();
}
//从后台获取到我们要的数据源
[HttpPost]//
publicint Add(ShAddress model)
{
return add.Add(model);
}
//为省市提供数据源
[HttpGet]
public JsonResult GetSs(int qid)
{
return Json(add.GetSsList(qid), JsonRequestBehavior.AllowGet);
}
//为区县提供数据源
[HttpGet]
public JsonResult GetQx(int qid)
{
return Json(add.GetSsList(qid), JsonRequestBehavior.AllowGet);
}
}
}
AddController
4.视图层:(view)
地址显示视图:
@{ViewBag.Title
= "Index";}
<h2>Index</h2><input type="button" onclick="Add()" name="name" value="新增收获地址" />
<div id="divMain">
</div>
<script>
//文档就绪函数
$(function () {
Show();
})
//显示函数
function Show() {
$.ajax({
url: "/Address/GetList",//地址
dataType: "json",//返回到后台的数据格式
type: "get",//获取到数据的方式
success: function (d) {//成功就继续执行后面的代码
//清空原有的旧数据
$("#divMain").empty();
//each遍历显示数据库的数据
$(d).each(function () {
//字符串拼接
var str = ‘<div style="border:solid;color:lightpink;">‘;
str += ‘收货人:‘ + this.AName;
str += ‘<img src="../Img/228c96645e893848a8bd68a66c84777f.png" onclick="Del(‘ + this.AId + ‘)" Title="删除" style="float:right;cursor:pointer;"/></br>‘;
str += ‘所在地区:‘ + this.Area +‘</br>‘;
str += ‘地址:‘ + this.Dzhi + ‘</br>‘;
str += ‘手机:‘ + this.hanSet + ‘<a href="javascript:Edit(‘ + this.AId +‘)" style="float:right;cursor:pointer;">编辑</a>‘;
str += ‘</div></br >‘;
//在div最后面添加要拼接上去的内容
$("#divMain").append(str);
})
}
})
}
//删除功能实现
function Del(id) {
//弹框提示是否要删除
if (confirm(‘确认删除吗?‘)) {
$.ajax({
url: "/Address/Del",//地址
dataType: "json",//返回到后台的数据格式
data: { id: id },//要向数据库后台发送的数据,前面是你的控制器名称,后面是你发送的值定义好的名称(我这里发送值的名称与控制器名称是一样的)
type: "post",//获取到数据的方式 post是发送命令到数据库中,get是从数据库获取到数据
success: function (d) {//成功就继续执行后面的代码
if (d > 0) {
alert("删除成功!");
//调用显示函数进行刷新页面
Show();
}
else {
alert("删除失败!");
}
}
})
}
else {
returnfalse;//选择否,返回false;
}
}
//编辑按钮要跳转到编辑页面
function Edit(id) {
location.href = ‘/Address/Upt?id=‘ + id;
}
//添加
function Add() {
location.href = ‘/Add/Add‘;
}
</script>
Index.cshtml
地址修改视图:
@{ViewBag.Title
= "Upt";}
<script src="~/Scripts/jquery-3.4.1.min.js"></script><h2>Upt</h2>
<table class="table table-bordered">
<tr>
<td>收货人:</td>
<td>
<input type="hidden" id="aid"/>
<input id="aName" type="text" name="name" /></td>
</tr>
<tr>
<td>所在地区:</td>
<td>
省市:<select id="Ss" onfocus="BandQ(this.value)"></select>
区:<select id="q"></select>
</td>
</tr>
<tr>
<td>地址:</td>
<td><input id="Dzhi" type="text" name="name" /></td>
</tr>
<tr>
<td>手机:</td>
<td><input id="hanSet" type="text" name="name" /></td>
</tr>
<tr>
<td colspan="2"><input type="button" onclick="Xg()" name="name" value="修改" /></td>
</tr>
</table>
<script>
//文档就绪函数
$(function () {
//绑定二级联动的函数
var id = @ViewBag.id;
$("#aid").val(id);
Ft(id);
BandSel();
})
function Ft(id) {
$.ajax({
url: "/Address/GetId",
data: {id:id},
dataType: "json",
type: "post",
success: function (d) {
// console.log(d);
alert(d.AId);
$("#aid").val(d.AId);
$("#aName").val(d.AName);
$("#Dzhi").val(d.Dzhi);
//$("#Ss option:selected").text() + $("#q option:selected").text();
$("#hanSet").val(d.hanSet);
}
})
}
//修改函数
function Xg() {
var obj = {};
obj.AId = $("#aid").val();//勿忘我
obj.AName = $("#aName").val();
obj.Area = $("#Ss option:selected").text() + $("#q option:selected").text();
obj.Dzhi = $("#Dzhi").val();
obj.hanSet = $("#hanSet").val();
$.ajax({
url: "/Address/Upt",
data: { model:obj },
dataType: "json",
type: "post",
success: function (d) {
if (d > 0) {
alert("修改成功!");
location.href = ‘/Address/Index‘;
}
else {
alert("修改失败!");
}
}
})
}
//绑定下拉 省市绑定
function BandSel() {
$.ajax({
url: "/Add/GetSs",
data: { qid:0},
dataType: "json",
type: "get",
success: function (d) {
$("#Ss").empty();
$(d).each(function () {
var str = ‘<option value="‘ + this.Id + ‘">‘ + this.Name + ‘</option>‘;
$("#Ss").append(str);
})
}
})
}
function BandQ() {
$.ajax({
url: "/Add/GetQx",
data: { qid: $("#Ss").val() },
dataType: "json",
type: "get",
success: function (d) {
$("#q").empty();
$(d).each(function () {
var str = ‘<option value="‘ + this.Id + ‘">‘ + this.Name + ‘</option>‘;
$("#q").append(str);
})
}
})
}
</script>
Upt.cshtml
地址添加视图:
@{ViewBag.Title
= "Add";}
<h2>Add</h2><table class="table table-bordered">
<tr>
<td>收货人:</td>
<td><input id="aName" type="text" name="name" value="" /></td>
</tr>
<tr>
<td>所在地区:</td>
<td>
省市:<select id="Ss" onfocus="BandQ(this.value)"></select>
区:<select id="q"></select>
</td>
</tr>
<tr>
<td>地址:</td>
<td><input id="Dzhi" type="text" name="name" value="" /></td>
</tr>
<tr>
<td>手机:</td>
<td><input id="hanSet" type="text" name="name" value="" /></td>
</tr>
<tr>
<td colspan="2"><input type="button" onclick="Tj()" name="name" value="添加到地址" /></td>
</tr>
</table>
<script>
//文档就绪函数
$(function () {
//绑定二级联动的函数
BandSel();
})
//添加函数
function Tj() {
var obj = {};
obj.AName = $("#aName").val();
obj.Area = $("#Ss option:selected").text() + $("#q option:selected").text();
obj.Dzhi = $("#Dzhi").val();
obj.hanSet = $("#hanSet").val();
$.ajax({
url: "/Add/Add",
data: { model:obj },
dataType: "json",
type: "post",
success: function (d) {
if (d > 0) {
alert("添加成功!");
location.href = ‘/Address/Index‘;
}
else {
alert("添加失败!");
}
}
})
}
//绑定下拉 省市绑定
function BandSel() {
$.ajax({
url: "/Add/GetSs",
data: { qid:0},
dataType: "json",
type: "get",
success: function (d) {
$("#Ss").empty();
$(d).each(function () {
var str = ‘<option value="‘ + this.Id + ‘">‘ + this.Name + ‘</option>‘;
$("#Ss").append(str);
})
}
})
}
function BandQ() {
$.ajax({
url: "/Add/GetQx",
data: { qid: $("#Ss").val() },
dataType: "json",
type: "get",
success: function (d) {
$("#q").empty();
$(d).each(function () {
var str = ‘<option value="‘ + this.Id + ‘">‘ + this.Name + ‘</option>‘;
$("#q").append(str);
})
}
})
}
</script>
Add.cshtml
5.还望大佬们多多提一些修改意见,我会努力慢慢去改正的.
关于c#购物车的地址的增删改查(mvc,详细注释)
以上是 关于c#购物车的地址的增删改查(mvc,详细注释) [操作系统入门] 的全部内容, 来源链接: utcz.com/z/519003.html