精通LINQ--8.2.1 向数据库中插入数据

  LINQ to SQL向数据库中插入数据的功能由Table<T>类的InsertAllOnSubmit<TSubEntity>()InsertOnSubmit()方法实现。其中,InsertOnSubmit()方法将单个实体添加到Table<T>类的实例中,InsertAllOnSubmit<TSubEntity>()方法将实体的集合添加到Table<T>类的实例中。它们的原型如下。

public void InsertOnSubmit(TEntity entity)

public void InsertAllOnSubmit<TSubEntity>(IEnumerable<TSubEntity> entities) where TSubEntity :

其中,entity参数表示单个实体,entities参数表示实体的集合。

向数据库中插入数据的功能由Sample_08应用程序中的AddData.aspx页面实现,它的代码隐藏文件为AddData.aspx.aspx.cs

1.创建AddData.aspx页面

AddData.aspx页面上创建一个GridView控件和一个Button控件,它们的ID属性的值分别为gvDatabtnAddAddData.aspx页面的HTML设计代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddData.aspx.cs" Inherits="AddData" %>

<head runat="server"><title>向数据库中插入数据</title></head>

<asp:GridView ID="gvData" runat="server"></asp:GridView>

<asp:Button ID="btnAdd" runat="server" Text="添加新的数据" οnclick="btnAdd_Click" />

2AddData.aspx页面初始化

AddData.aspx页面初始化功能由其Page_Load(object sender, EventArgs e)事件实现。该事件调用ShowData()函数使用LINQ语句查询Role表中的记录,并显示在gvData控件中。其中,查询数据的LINQ查询表达式为“from r in db.Role select r”。Page_Load(object sender, EventArgs e)事件和ShowData()函数的程序代码如下:

using System.Data.Linq;

using System.Collections.Generic;

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack){ShowData();}

}

private void ShowData()

{   ///创建LinqDB数据库的数据上下文的实例

LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);

///获取所有角色

var result = from r in db.Role

select r;

///绑定控件数据,并显示数据

gvData.DataSource = result;

gvData.DataBind();

}

3.插入数据

插入数据的功能由AddData.aspx页面中的【添加新的数据】按钮(btnAdd控件)实现,该按钮触发其Click事件btnAdd_Click(object sender,EventArgs e)。该事件调用AddDataWiteLINQ()函数实现插入数据的功能,具体步骤如下。

1)创建LinqDBDataContext类的实例db

2)创建Role类的一个新的实例role,并设置该实例的RoleName属性的值为“"New Role " + DateTime.Now.ToShortTimeString()”表达式的值。

3)调用InsertOnSubmit()方法将role实例添加到db实例的Role表中。

4)调用SubmitChanges()方法将上述修改提交到数据库,并实现修改数据的功能。

btnAdd_Click(object sender,EventArgs e)事件和AddDataWithLINQ()函数的程序代码如下:

private void AddDataWithLINQ()

{   ///创建LinqDB数据库的数据上下文的实例

LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);

///创建一个新的实体

Role role = new Role();

role.RoleName = "New Role " + DateTime.Now.ToShortTimeString();

///添加到数据库中

db.Role.InsertOnSubmit(role);

db.SubmitChanges();

}

protected void btnAdd_Click(object sender,EventArgs e)

{

AddDataWithLINQ();ShowData();

}

AddData.aspx页面设置为Sample_08应用程序的起始页面,并运行Sample_08应用程序。AddData.aspx页面的初始化界面如图所示,此时,该页面显示Role表中的记录。单击【添加新的数据】按钮,AddData.aspx页面将插入一条新记录到Role表中,并显示插入操作之后的Role表中的记录,如图所示。

             

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值