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,他会比对如果重复刷新了就不执行查询了.

 

posted @ 2015-07-23 23:59  SaYes  阅读(1483)  评论(0编辑  收藏  举报