详细阐述Linq插入数据的操作方法
创始人
2024-06-07 03:30:37
0

Linq插入数据的功能实现原理不是很容易理解,希望同错此篇文章,能给你带去启迪。

Linq插入数据的功能由Table类的InsertAllOnSubmit()和InsertOnSubmit()方法实现。其中,InsertOnSubmit()方法将单个实体添加到Table类的实例中,InsertAllOnSubmit()方法将实体的集合添加到Table类的实例中。它们的原型如下。

  1. public void InsertOnSubmit(TEntity entity)  
  2. public void InsertAllOnSubmit(IEnumerable entities) where TSubEntity :  

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

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

1.Linq插入数据之创建AddData.aspx页面

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

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddData.aspx.cs" Inherits="AddData" %>  
  2. 向数据库中插入数据  
  3. "gvData" runat="server">  
  4. "btnAdd" runat="server" Text="添加新的数据" onclick="btnAdd_Click" />  

2.Linq插入数据之AddData.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()函数的程序代码如下:

  1. using System.Data.Linq;  
  2. using System.Collections.Generic;  
  3. protected void Page_Load(object sender, EventArgs e)  
  4. {  
  5. if (!Page.IsPostBack){ShowData();}  
  6. }  
  7. private void ShowData()  
  8. { ///创建LinqDB数据库的数据上下文的实例  
  9. LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);  
  10. ///获取所有角色  
  11. var result = from r in db.Role  
  12. select r;  
  13. ///绑定控件数据,并显示数据  
  14. gvData.DataSource = result;  
  15. gvData.DataBind();  
  16. }  

3.Linq插入数据

插入数据的功能由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()函数的程序代码如下:

  1. private void AddDataWithLINQ()  
  2. {   ///创建LinqDB数据库的数据上下文的实例  
  3. LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);  
  4. ///创建一个新的实体  
  5. Role role = new Role();  
  6. role.RoleName = "New Role " + DateTime.Now.ToShortTimeString();  
  7. ///添加到数据库中  
  8. db.Role.InsertOnSubmit(role);  
  9. db.SubmitChanges();  
  10. }  
  11. protected void btnAdd_Click(object sender,EventArgs e)  
  12. {  
  13. AddDataWithLINQ();ShowData();  
  14. }  

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

以上就是对Linq插入数据的简单介绍。

【编辑推荐】

  1. 简单解决Linq多条件组合问题
  2. 将数据源进行Linq排序
  3. Ordering方法实现Linq排序
  4. 轻轻松松学习Linq排序
  5. 详解Linq联合查询表结果集的返回

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...