LinqToSql增删改

1.建立Users表如下:

image

其中userid是自动增长的.

2.生成实体类

新建一个LinqToSql类.如图:

image

3.从"服务器资源管理器"中拖出Users表,放在该dbml上.如下图:

image

4.查看dbml代码,结果如下,只需大致看即可:

[Table(Name="dbo.Users")]
public partial class Users : INotifyPropertyChanging, INotifyPropertyChanged
{
	
	private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
	
	private int _userid;
	
	private string _username;
	
	private string _userpwd;
	
	private System.Nullable<int> _age;
	
    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnuseridChanging(int value);
    partial void OnuseridChanged();
    partial void OnusernameChanging(string value);
    partial void OnusernameChanged();
    partial void OnuserpwdChanging(string value);
    partial void OnuserpwdChanged();
    partial void OnageChanging(System.Nullable<int> value);
    partial void OnageChanged();
    #endregion
	
	public Users()
	{
		OnCreated();
	}
	
	[Column(Storage="_userid", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
	public int userid
	{
		get
		{
			return this._userid;
		}
		set
		{
			if ((this._userid != value))
			{
				this.OnuseridChanging(value);
				this.SendPropertyChanging();
				this._userid = value;
				this.SendPropertyChanged("userid");
				this.OnuseridChanged();
			}
		}
	}
	
	[Column(Storage="_username", DbType="NVarChar(20) NOT NULL", CanBeNull=false)]
	public string username
	{
		get
		{
			return this._username;
		}
		set
		{
			if ((this._username != value))
			{
				this.OnusernameChanging(value);
				this.SendPropertyChanging();
				this._username = value;
				this.SendPropertyChanged("username");
				this.OnusernameChanged();
			}
		}
	}
	
	[Column(Storage="_userpwd", DbType="NVarChar(20)")]
	public string userpwd
	{
		get
		{
			return this._userpwd;
		}
		set
		{
			if ((this._userpwd != value))
			{
				this.OnuserpwdChanging(value);
				this.SendPropertyChanging();
				this._userpwd = value;
				this.SendPropertyChanged("userpwd");
				this.OnuserpwdChanged();
			}
		}
	}
	
	[Column(Storage="_age", DbType="Int")]
	public System.Nullable<int> age
	{
		get
		{
			return this._age;
		}
		set
		{
			if ((this._age != value))
			{
				this.OnageChanging(value);
				this.SendPropertyChanging();
				this._age = value;
				this.SendPropertyChanged("age");
				this.OnageChanged();
			}
		}
	}
	
	public event PropertyChangingEventHandler PropertyChanging;
	
	public event PropertyChangedEventHandler PropertyChanged;
	
	protected virtual void SendPropertyChanging()
	{
		if ((this.PropertyChanging != null))
		{
			this.PropertyChanging(this, emptyChangingEventArgs);
		}
	}
	
	protected virtual void SendPropertyChanged(String propertyName)
	{
		if ((this.PropertyChanged != null))
		{
			this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
		}
	}
}
5.现在我们用Linq To Sql完成简易的用户管理页面.
添加用户:
代码如下:
        <table>
            <tr>
                <td>
                    Name:
                </td>
                <td>
                    <asp:TextBox runat="server" ID="txtname"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    Password:
                </td>
                <td>
                    <asp:TextBox runat="server" ID="txtPwd" TextMode="Password"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    Age:
                </td>
                <td>
                    <asp:TextBox runat="server" ID="txtAge"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td colspan="2" style="text-align:center;">
                    <asp:Button runat="server" ID="btnSave" Text="保存" BackColor="Silver" 
                        BorderStyle="None" onclick="btnSave_Click" />
                </td>
            </tr>
        </table>
        <hr />
        <table style="200px; text-align:center">
            <asp:Repeater ID="rpt" runat="server">
                <HeaderTemplate>
                    <tr>
                        <td>
                            用户名
                        </td>
                        <td>
                            密码
                        </td>
                        <td>
                            年龄
                        </td>
                    </tr>
                </HeaderTemplate>
                <ItemTemplate>                    
                    <tr>
                        <td><%# Eval("username") %></td>
                        <td><%# Eval("userpwd") %></td>
                        <td><%# Eval("age") %></td>
                    </tr>                    
                </ItemTemplate>
            </asp:Repeater>   
          </table>

后台:

    DataClassesDataContext context = new DataClassesDataContext(ConstInfo.Connection);

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            SetBind();
        }
    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
        Users user = new Users();
        
        user.username = txtname.Text;
        user.userpwd = txtPwd.Text;
        user.age = int.Parse(txtAge.Text);

        context.Users.InsertOnSubmit(user);

        context.SubmitChanges();
        SetBind();

    }

    void SetBind()
    {
        rpt.DataSource = context.Users;
        rpt.DataBind();
    }
页面效果:
image 

删除用户:

前台:

        <table style="200px; text-align:center">
            <asp:Repeater ID="rpt" runat="server">
                <HeaderTemplate>
                    <tr>
                        <td>
                            用户名
                        </td>
                        <td>
                            密码
                        </td>
                        <td>
                            年龄
                        </td>
                    </tr>
                </HeaderTemplate>
                <ItemTemplate>                    
                    <tr>
                        <td><%# Eval("username") %></td>
                        <td><%# Eval("userpwd") %></td>
                        <td><%# Eval("age") %></td>
                        <td>
                            <asp:LinkButton runat="server" ID="lbtnDelete" OnClick="lbtnDelete_Click" CommandArgument='<%# Bind("userid") %>' Text="删除">
                            </asp:LinkButton>
                        </td>
                    </tr>                    
                </ItemTemplate>
            </asp:Repeater> 
后台:
    protected void lbtnDelete_Click(object sender, EventArgs e)
    {
        int userid = int.Parse(((LinkButton)sender).CommandArgument.ToString());

        var user = from u in context.Users
                   where u.userid == userid
                   select u;

        context.Users.DeleteOnSubmit(user.First<Users>());
        context.SubmitChanges();

        SetBind();
    }
效果:
image 
修改用户:
前台代码
        <table style="300px; text-align:center">
            <asp:Repeater ID="rpt" runat="server">
                <HeaderTemplate>
                    <tr>
                        <td>
                            用户名
                        </td>
                        <td>
                            密码
                        </td>
                        <td>
                            年龄
                        </td>
                    </tr>
                </HeaderTemplate>
                <ItemTemplate>                    
                    <tr>
                        <td><%# Eval("username") %></td>
                        <td><%# Eval("userpwd") %></td>
                        <td><%# Eval("age") %> %></td>
                        <td>
                            <asp:LinkButton runat="server" ID="lbtnDelete" OnClick="lbtnDelete_Click" CommandArgument='<%# Bind("userid") %>' Text="删除">
                            </asp:LinkButton>
                            <asp:LinkButton runat="server" ID="lbtnEdit" OnClick="lbtnEdit_Click" CommandArgument='<%# Bind("userid") %>' Text="编辑">
                            </asp:LinkButton>
                        </td>
                    </tr>                    
                </ItemTemplate>
            </asp:Repeater>
后台代码:
    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        int userid = int.Parse(hiddenUserid.Value);

        var user = from u in context.Users
                   where u.userid == userid
                   select u;

        Users u1 = user.First<Users>();

        u1.username = txtname.Text;
        u1.age = int.Parse(txtAge.Text);

        context.SubmitChanges();
        SetBind();
    }
 
原文地址:https://www.cnblogs.com/oneword/p/1605708.html