linq增删改

来源:互联网 发布:最大公约数算法 编辑:程序博客网 时间:2024/05/17 08:13

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>GridView+Linq增删改操作</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <asp:GridView ID="gvDictionary" runat="server" SkinID="gvDefault" OnRowCancelingEdit="gvDictionary_RowCancelingEdit"
        OnRowEditing="gvDictionary_RowEditing" OnRowUpdating="gvDictionary_RowUpdating"
        OnRowDeleting="gvDictionary_RowDeleting"
        onpageindexchanging="gvDictionary_PageIndexChanging"
        onrowdatabound="gvDictionary_RowDataBound" onsorting="gvDictionary_Sorting"
            AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
            CellPadding="4" ForeColor="#333333" GridLines="None" PageSize="5" Width="419px">
         <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
         <RowStyle BackColor="#E3EAEB" />
        <Columns>
            <asp:BoundField ReadOnly="true" DataField="DictCode" SortExpression="DictCode" HeaderText="字典编号">
                <HeaderStyle HorizontalAlign="Left" />
            </asp:BoundField>
            <asp:BoundField DataField="DictName" SortExpression="DictName" HeaderText="字典名称">
                <HeaderStyle HorizontalAlign="Left" />
            </asp:BoundField>
            <asp:CheckBoxField DataField="IfUsing" SortExpression="IfUsing" HeaderText="启用" Text="启用">
                <HeaderStyle HorizontalAlign="Left" />
            </asp:CheckBoxField>
            <asp:BoundField DataField="Note" HeaderText="备注">
                <HeaderStyle HorizontalAlign="Left" />
            </asp:BoundField>
            <asp:CommandField CancelText="取消" EditText="编辑" ShowEditButton="True" UpdateText="更新">
            </asp:CommandField>
            <asp:CommandField DeleteText="删除" ShowDeleteButton="True"></asp:CommandField>
        </Columns>
         <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
         <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
         <HeaderStyle BackColor="#1C5E55" BorderStyle="None" Font-Bold="True"
             ForeColor="White" HorizontalAlign="Left" />
         <EditRowStyle BackColor="#7C6F57" />
         <AlternatingRowStyle BackColor="White" />
    </asp:GridView>
    <table style="width: 100%">
        <tr>
            <td>
                字典编号:</td>
            <td>
                <asp:TextBox ID="txtDictCode" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                字典名称</td>
            <td>
                <asp:TextBox ID="txtDictName" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                是否启用:</td>
            <td>
                <asp:CheckBox ID="chkIfUsing" runat="server" Checked="True" Text="启用" />
            </td>
        </tr>
        <tr>
            <td>
                备注:</td>
            <td>
                <asp:TextBox ID="txtNote" runat="server" Height="88px" TextMode="MultiLine" Width="313px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <asp:Button ID="btnSave" runat="server" Text="保存" OnClick="btnSave_Click" />
                <br />
                <asp:Label ID="lblInfo" runat="server" />
                <asp:Label ID="lblSort" runat="server" Visible="false"></asp:Label>
            </td>
        </tr>
    </table>

    </div>
    </form>
</body>
</html>
后台代码:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.Linq;
using System.Collections.Generic;

namespace WebApplication1
...{
    public partial class Default5 : System.Web.UI.Page
    ...{
       /**//*作者:WhirlWind(20080524) */
        ProviderTypeDataContext myprovider = new ProviderTypeDataContext();
        protected void Page_Load(object sender, EventArgs e)
        ...{
            if (!Page.IsPostBack)
            ...{
                //进行绑定
                gvBind();
            }
        }
        // 进行数据绑定
        public void gvBind()
        ...{
            var query = from p in myprovider.Provider_Type
                        select p;

            this.gvDictionary.DataSource = query;
            this.gvDictionary.DataBind();
        }

        //添加操作
        protected void btnSave_Click(object sender, EventArgs e)
        ...{
            //判断当前主键编号是否存在
            var bol = from p in myprovider.Provider_Type
                      where p.DictCode.Contains(this.txtDictCode.Text)
                      select p.DictCode;

            if (bol.Count() >= 1)
            ...{
                this.lblInfo.ForeColor = System.Drawing.Color.Red;
                this.lblInfo.Text = string.Format("字典编号为 '{0}' 已经存在,请重新填写", this.txtDictCode.Text);
                return;
            }
            else
            ...{
                this.lblInfo.Text = "";
            }


            Provider_Type provider = new Provider_Type();

            provider.DictCode = this.txtDictCode.Text;
            provider.DictName = this.txtDictName.Text;
            provider.IfUsing = this.chkIfUsing.Checked;
            provider.Note = this.txtNote.Text;

            //进行添加操作
            //Table<Provider_Type> TabProviderTypes = myprovider.GetTable<Provider_Type>();
           // myprovider.Provider_Type.Add(provider);
           // TabProviderTypes.res
            myprovider.Provider_Type.InsertOnSubmit(provider);
            myprovider.SubmitChanges();
            //重新进行绑定
            this.gvBind();
        }
        protected void gvDictionary_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        ...{
            this.gvDictionary.EditIndex = -1;
            this.gvBind();
        }
        protected void gvDictionary_RowEditing(object sender, GridViewEditEventArgs e)
        ...{
            this.gvDictionary.EditIndex = e.NewEditIndex;
            this.gvBind();
        }
        //更新操作
        protected void gvDictionary_RowUpdating(object sender, GridViewUpdateEventArgs e)
        ...{
            //获取字典编号值
            string strDictCode = this.gvDictionary.Rows[e.RowIndex].Cells[0].Text;
            Provider_Type provider = myprovider.Provider_Type.Single(p => p.DictCode == strDictCode);
            //更新内容
            provider.DictName = ((TextBox)this.gvDictionary.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
            provider.IfUsing = ((CheckBox)this.gvDictionary.Rows[e.RowIndex].Cells[2].Controls[0]).Checked;
            provider.Note = ((TextBox)this.gvDictionary.Rows[e.RowIndex].Cells[3].Controls[0]).Text;

            //进行更新操作
            myprovider.SubmitChanges();
            //取消更新状态
            this.gvDictionary.EditIndex = -1;
            //重新进行绑定
            this.gvBind();
        }
        protected void gvDictionary_RowDeleting(object sender, GridViewDeleteEventArgs e)
        ...{
            //获取主键
            string strDictCode = this.gvDictionary.Rows[e.RowIndex].Cells[0].Text;
            var provider = from p in myprovider.Provider_Type
                           where p.DictCode.Contains(strDictCode)
                           select p;
            //执行删除操作
            //myprovider.ProviderTypes.RemoveAll(provider);
            myprovider.Provider_Type.DeleteAllOnSubmit(provider);
            //开始提交
            myprovider.SubmitChanges();
            //重新进行绑定
            this.gvBind();

        }

        //排序
        protected void gvDictionary_Sorting(object sender, GridViewSortEventArgs e)
        ...{
            //Table<Model.ProviderType> provider = from p in myprovider.ProviderTypes
            //                                     select p;
            //if (this.lblSort.Text == e.SortExpression)
            //{
            //    this.lblSort.Text = e.SortExpression + "  DESC";
            //}
            //else
            //{
            //    this.lblSort.Text = e.SortExpression;
            //}
            var mysort = from p in myprovider.Provider_Type
                         orderby p.DictName descending
                         select p;

            this.gvDictionary.DataSource = mysort;
            this.gvDictionary.DataBind();
        }

        //分页
        protected void gvDictionary_PageIndexChanging(object sender, GridViewPageEventArgs e)
        ...{
            this.gvDictionary.PageIndex = e.NewPageIndex;

            this.gvBind();

              }
        protected void gvDictionary_RowDataBound(object sender, GridViewRowEventArgs e)
        ...{
            if (e.Row.RowType == DataControlRowType.DataRow)
            ...{
                string strMsg = "javascript:return confirm('您确定要删除 字典名称为:" + e.Row.Cells[1].Text + "  的信息吗?')";
                e.Row.Cells[5].Attributes.Add("onclick", strMsg);
            }
        }
    }
}

 

原创粉丝点击