Linq对GridView 增删改操作(单表操作)

原创 2007年09月19日 11:53:00
1.创建数据表:
--=============================================================================
/****** 对象:表 dbo.Provider_Type ******/
/****** 说明:供应商类型表表 ******/
--=============================================================================
If exists (select * from sysobjects where id = object_id('dbo.Provider_Type'))
Drop Table dbo.Provider_Type
GO
Create Table dbo.Provider_Type(
    TypeCode 
varchar(4Not Null Primary Key,    --类型代码
    TypeName varchar(50Not Null,            --类型名称;
    IfUsing bit Not Null Default 1,            --启用;默认启用
    Note varchar(100Null                --备注;
)
GO
-------------------------------------------------------------------------------

2. 创建Visual Studio 2008 对数据库连接的关联操作。
菜单"View "-"Server Explorer"-"Add Connection"创建对当前数据的关联操作.
3.菜单“WebSite”-"Add New Item"添加新项操作,添加扩展名为“.dbml”文件.
4.将Provider_Type表从“Server Explorer”拖到该文件中,可根据需求对部分配置进行修改。
5.页面HTML代码如下:(我也想把图片粘出来,可是我弄上去,痛苦)

<asp:Content ID="Content1" ContentPlaceHolderID="DataArea" runat="Server">
    
<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">
        
<Columns>
            
<asp:BoundField ReadOnly="true" DataField="DictCode" SortExpression="DictCode" HeaderText="字典编号"></asp:BoundField>
            
<asp:BoundField DataField="DictName" SortExpression="DictName" HeaderText="字典名称"></asp:BoundField>
            
<asp:CheckBoxField DataField="IfUsing" SortExpression="IfUsing" HeaderText="启用" Text="启用"></asp:CheckBoxField>
            
<asp:BoundField DataField="Note" HeaderText="备注"></asp:BoundField>
            
<asp:CommandField CancelText="取消" EditText="编辑" ShowEditButton="True" UpdateText="更新">
            
</asp:CommandField>
            
<asp:CommandField DeleteText="删除" ShowDeleteButton="True"></asp:CommandField>
        
</Columns>
    
</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>
</asp:Content>

以下是对应的后台代码:

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

public partial class Admin_Dictionary : System.Web.UI.Page
{
    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.ProviderTypes
                    select p;

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

 
    
//添加操作
    protected void btnSave_Click(object sender, EventArgs e)
    
{
        
//判断当前主键编号是否存在
        var bol = from p in myprovider.ProviderTypes
                  
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 = "";
        }

        

        ProviderType provider 
= new ProviderType();
        
        provider.DictCode 
= this.txtDictCode.Text;
        provider.DictName 
= this.txtDictName.Text;
        provider.IfUsing 
= this.chkIfUsing.Checked;
        provider.Note 
= this.txtNote.Text;

        
//进行添加操作
        myprovider.ProviderTypes.Add(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;
        ProviderType provider 
= myprovider.ProviderTypes.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.ProviderTypes 
                      
where p.DictCode.Contains(strDictCode)
                      select p;
        
//执行删除操作
        myprovider.ProviderTypes.RemoveAll(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.ProviderTypes
                     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();

        
//下面注释的方法,可用,但当执行后,可以进行翻页,只是翻过之后,就不能反过来了
        
//int intSkip = (this.gvDictionary.PageIndex + 1) * this.gvDictionary.PageSize;
        
//var query = (from p in myprovider.ProviderTypes 
        
//            select p).Skip(intSkip).Take(this.gvDictionary.PageSize);
        
        
//this.gvDictionary.DataSource = query;
        
//this.gvDictionary.DataBind(); 
    }

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

    }

}

希望我的代码,能给你的学习带来帮助。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

mybatis入门--单表的增删改操作

单表的增加操作          前面我们看了如何搭建mybatis框架以及查询操作,这里我们说下如何使用mybatis进行增加用户的操作。首先是在user.xml文件中添加insert的方法。代码如...

web day19 Service层处理事务(利用ThreadLocal),TxQueryRunner小工具,单表练习(增删改查操作)

Service层处理事务(利用ThreadLocal),TxQueryRunner小工具,单表练习(增删改查操作)

操作数据库(MySql)表的扩展方法类,对单表可以进行增、删、改、查。

最近在学ASP.NET MVC的时候,有的时候,要对进行增、删、改、查操作 一开始感觉用自己带的那个 ADO.NET Entity Data Model 来进行增、删,改、查挺方便的 但后来发一个...

oracle单表操作

  • 2013-09-09 15:37
  • 256KB
  • 下载

Hibernate单表操作(五)——增删改查操作实例

转载请注明:http://blog.csdn.net/uniquewonderq 增:sava 删:delete 改:update 查:get/load(查询单个记录)

简单struts对单表的操作

  • 2008-06-17 15:45
  • 1.43MB
  • 下载

Hibernate单表操作(四)——组件属性

转载请注明:http://blog.csdn.net/uniquewonderq 1.什么是组件属性呢?  它是指:实体类中的某个属性属于用户自定义的类的对象。 理解起来还是不容易:所以写点代码来...

单表操作数据库

  • 2017-08-17 09:52
  • 5.88MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)