linq asp.net
- 添加Linq to SQL类
添加新项|Linq to SQL类,拖放SQL db中的表到dbml文件,自动创建相关的数据库相应的类。(在.cs文件中) - Linq的使用
- 添加本页面的全局变量,公用的绑定代码
public DataClassesDataContext lqDB = new DataClassesDataContext(ConfigurationManager.ConnectionStrings["pubsConnectionString"].ToString());
protected void bind() { var result = from r in lqDB.authors where r.state.Equals("CA") select r;//new { r.au_id, r.au_fname, r.au_lname, r.address}; GridView1.DataSource = result; GridView1.DataBind(); }
- PageLoad事件
protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) bind(); }
- Row_Editing事件
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.SelectedIndex = e.NewEditIndex; GridView1.EditIndex = e.NewEditIndex; bind(); }
- RowCancellingEdit事件
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; bind(); }
RowUpdating事件
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { //au_id au_lname au_fname phone address city state zip contract //定位行对象 authors au = lqDB.authors.First(c => c.au_id == GridView1.DataKeys[e.RowIndex].Value); //修改行对象 au.au_lname = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text; au.au_fname = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text; au.phone = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text; au.address = ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text; au.city = ((TextBox)GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text; au.state = ((TextBox)GridView1.Rows[e.RowIndex].Cells[6].Controls[0]).Text; au.zip = ((TextBox)GridView1.Rows[e.RowIndex].Cells[7].Controls[0]).Text; au.contract = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[8].Controls[1]).Checked;//模版字段有itemtemplate\edititemtemplate两个。 //提交行对象 lqDB.SubmitChanges(); GridView1.EditIndex = -1; bind(); }