zoukankan      html  css  js  c++  java
  • WebForm增删改查

    最基本的,拼接字符串在Literal里面显示表,IsPostBack,增删改查基本,?传值 Request接收

    LinQ to SQL类

    在Default主页里面拖入Literal控件再加入一个按钮,后台写代码

    函数类:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    /// <summary>
    /// CarDA 的摘要说明
    /// </summary>
    public class CarDA
    {
        private DataClassesDataContext context;
     
        public CarDA()
        {
            context = new DataClassesDataContext();
        }
        public List<Car> selec()
        {
            return context.Car.ToList();
        }
        public Car select(string code)
        {
            var query = context.Car.Where(p => p.Code == code);
            return query.First();
        }
        public void delete(string code)
        {
            var query = context.Car.Where(p => p.Code == code);
            if (query.Count() > 0)
            {
                Car data = query.First();
                context.Car.DeleteOnSubmit(data);
                context.SubmitChanges();
            }
        }
        public void insert(Car data)
        {
            Productor prod = new Productor();
            Brand brand = new Brand();
            brand.Brand_Code=data.Brand;
            brand.Brand_Name=data.Name;
            brand.Prod_Code=data.Code;
            brand.Brand_Memo=data.Name;
    
            prod.Prod_Code = brand.Prod_Code;
            prod.Prod_Name = brand.Brand_Name;
            context.Productor.InsertOnSubmit(prod);
            context.Brand.InsertOnSubmit(brand);
            context.Car.InsertOnSubmit(data);
            context.SubmitChanges();
        }
        public void Update(Car save)//string code, string name,string brand, DateTime time,decimal oil,int powers,int exhaust,decimal price,string pic
        {
            var query = context.Car.Where(p => p.Code == save.Code);
            if (query.Count() > 0)
            {
                Car data = query.First();
                data.Code = save.Code;
                data.Name = save.Name;
                data.Brand =save.Brand;
                data.Time = save.Time;
                data.Oil =save.Oil;
                data.Powers = save.Powers;
                data.Exhaust = save.Exhaust;
                data.Price = save.Price;
                data.Pic = save.Pic;
               context.SubmitChanges();
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            List<Car> list =new CarDA().selec();
    
            string s = "<table width=100% border=1><tr><td>编号</td><td>名称</td><td>价格</td><td>操作</td></ tr>";//</ table>";
        foreach (Car data in list)
        {
            s += "<tr><td>" + data.Code + " </td><td><a href='Default2.aspx?code=" + data.Code + "'>" + data.Name + "</a></td><td>" + data.Price + "</td><td><a href='delete.aspx?code=" + data.Code + "'>删除</a> <a href='Default2.aspx?code=" + data.Code + "'>修改</a></td></tr>";
        }
       s += "</ table>";
        Literal1.Text = s;
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Redirect("insert.aspx");
        }    
    }

    ____________________________________________________我是华丽的分割线____________________________________________________

    点击添加按钮 添加:

    因为这里牵扯到主外键关系,先要加主键才能建外键,所以为了能运行 用了点手段, 点击按钮触发 Response.Redirect("insert.aspx");转到 insert页面

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class insert : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Car data = new Car();
            data.Code = TextBox2.Text;
            data.Name=TextBox3.Text;
                data.Brand=TextBox4.Text;
                data.Time = Convert.ToDateTime(TextBox5.Text);
                data.Oil= Convert.ToDecimal(TextBox6.Text);
                data.Powers = Convert.ToInt32(TextBox7.Text);
                data.Exhaust = Convert.ToInt32(TextBox8.Text);
                data.Price = Convert.ToDecimal(TextBox9.Text);
                data.Pic = TextBox10.Text;
                new CarDA().insert(data);
                Response.Redirect("Default.aspx");
        }
    }

    点击insert页面中的提交 执行完添加函数后会转入Default.aspx主页面 Response.Redirect("Default.aspx");

    ____________________________________________________我是华丽的分割线____________________________________________________

    删除:

    每行后面有个删除按钮,超链接点击后导入删除界面,执行删除跳回主页面 ?code把 code=后面的值传走

    在指定页面Request["code"]接收,Request["code"]是Object类,如果要用请先转换类型

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class delete : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            new CarDA().delete(Request["code"].ToString());
            Response.Redirect("Default.aspx");
        }
    }

    ____________________________________________________我是华丽的分割线____________________________________________________

    修改:

    修改与添加类似,需要传值,根据传入的值查询具体类,修改后保存

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Car data = new CarDA().select(Request["code"].ToString());
                TextBox2.Text = data.Code;
                TextBox3.Text = data.Name;
                TextBox4.Text = data.Brand.ToString();
                TextBox5.Text = data.Time.ToString();
                TextBox6.Text = data.Oil.ToString();
                TextBox7.Text = data.Powers.ToString();
                TextBox8.Text = data.Exhaust.ToString();
                TextBox9.Text = data.Price.ToString();
                TextBox10.Text = data.Pic;
            }        
        }
    
        protected void Button1_Click(object sender, EventArgs e)
        {
            Car data = new Car();
            data.Code =TextBox2.Text;
            data.Name =TextBox3.Text ;
            data.Brand = TextBox4.Text;
            data.Time =Convert.ToDateTime(TextBox5.Text) ;
            data.Oil = Convert.ToDecimal(TextBox6.Text);
            data.Powers =Convert.ToInt32( TextBox7.Text) ;
            data.Exhaust = Convert.ToInt32(TextBox8.Text);
            data.Price = Convert.ToDecimal(TextBox9.Text);
            data.Pic = TextBox10.Text;
            new CarDA().Update(data); 
            Response.Redirect("Default.aspx");
        }
    }

    这里要注意,查询要加入IsPostBack条件判定,否则点击提交按钮后会刷新页面,我们修改的数据会随刷新页面覆盖,刷新后重新执行查询并覆盖我们之前输入的数据,这个数据虽然在页面上没有显示更改,但是在后台已经被查出来的数据覆盖,所以我们无论怎么修改都是存的查出来的数据,相当于没改.

    为了避免这种情况我们用IsPostBack,他会比对如果重复刷新了就不执行查询了.

  • 相关阅读:
    学习笔记-记ActiveMQ学习摘录与心得(一)
    c#写个基础的Socket通讯
    c#配置文件appStrings配置节的读取、添加和修改
    做个无边框winform窗体,并美化界面
    winform模拟鼠标按键
    winform程序开机自动启动代码
    记入园第一天
    HTTP Post 测试工具 (C#源代码)
    VC下调试内存泄漏的办法
    VMware共享文件夹遇到的问题
  • 原文地址:https://www.cnblogs.com/18553325o9o/p/4672138.html
Copyright © 2011-2022 走看看