首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用LINQ-to-SQL回滚对WPF DataGrid控件的更改?

要使用LINQ-to-SQL回滚对WPF DataGrid控件的更改,请按照以下步骤操作:

  1. 首先,确保已安装并引用了System.Data.Linq和System.Data.Linq.Mapping命名空间。
  2. 在DataContext类中,创建一个方法,该方法将接受一个表示要更改的对象的参数。
  3. 在该方法中,使用DataContext的SubmitChanges()方法提交更改。
  4. 如果在提交更改时发生异常,请使用DataContext的CancelChanges()方法回滚更改。

以下是一个示例:

代码语言:csharp
复制
using System.Data.Linq;
using System.Data.Linq.Mapping;

[Table(Name = "Products")]
public class Product
{
    [Column(IsPrimaryKey = true, IsDbGenerated = true)]
    public int ProductID { get; set; }

    [Column]
    public string ProductName { get; set; }

    [Column]
    public decimal UnitPrice { get; set; }
}

public class DataContextClass : DataContext
{
    public Table<Product> Products;

    public DataContextClass(string connectionString) : base(connectionString) { }

    public void UpdateProduct(Product product)
    {
        try
        {
            Products.Attach(product, this.Products.GetOriginalEntityState(product));
            this.SubmitChanges();
        }
        catch (Exception ex)
        {
            this.CancelChanges();
            throw ex;
        }
    }
}

在这个示例中,我们创建了一个名为DataContextClass的DataContext类,并在其中定义了一个名为UpdateProduct的方法。该方法接受一个Product对象作为参数,并尝试将其更新到数据库中。如果更新失败,它将使用DataContext的CancelChanges()方法回滚更改。

请注意,这只是一个示例,您可能需要根据您的具体需求进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用 Visual C# .NET DataGrid Windows 控件执行分页

如何使用 Visual C# .NET DataGrid Windows 控件执行分页 察看本文应用于产品 文章编号 : 307710 最后修改 : 2005年3月23日 修订 : 3.1...: 概要 DataGrid Web 控件有内置自动或自定义分页功能,而 DataGrid Windows 控件则没有。...本文演示了如何DataGrid Windows 控件创建简单分页机制。 本文代码示例利用了 DataSet 对象。...在 ADO.NET 中,DataSet 对象是通过单次操作填充并且永驻在内存中。如果您正在使用一个大型 DataSet,本文将为您介绍如何通过编程按块或页显示数据。...回到顶端 疑难解答 • 该方法只适用只读 DataGrid 控件。当您向临时 DataTable 对象中导入一行时,这只是一个副本,而您做更改没有保存到主表中。

1.5K100

Silverlight自定义数据绑定控件应该如何处理IEditableObject和IEditableCollectionView对象

本文会重点介绍在构建Silverlight自定义数据绑定控件过程中,我们会对数据源进行操作,那么就会碰到上述两个接口,如何正确处理它们。...比如一个数据行对象,你可以更改其多个列值,在没有提交者前,都可以通过CancelEdit进行。 通过一个简单Memo模式就可以实现这个对象。...自定义数据绑定控件应该如何处理这两个接口 IEditableObject 如果数据绑定控件发现当前行绑定对象是IEditableObject,那么在该行上如果有一个Cell进入编辑状态,并且是第一个单元格时候...当某一行上某一个Cell处于编辑状态时候,Press Esc,该Cell会退出编辑状态,值也会。...这样的话,自定义数据绑定控件就可以完美支持这两个接口了。 说明:以上描述是以Silverlight DataGrid为例,自定义控件类似。

90490
  • WPF面试题大全,秒杀面试官必备

    12、C#中表单界面上,有一个DataGrid控件如何将SQL数据库里一个表中数据显示在这个控件上,请描述一下操作方法及步骤 ? 13、解释完整WPF对象层次结构 ?...12、C#中表单界面上,有一个DataGrid控件如何将SQL数据库里一个表中数据显示在这个控件上,请描述一下操作方法及步骤 ? 答:首先,确保已经建立了与SQL数据库连接。...可以使用以下代码示例创建一个简单DataGrid控件: 这将创建一个名为"myDataGrid..."DataGrid控件,并自动根据数据源生成列。...在C#代码中,编写查询数据库代码,并将结果绑定到DataGrid控件上。可以使用SQLDataAdapter和DataSet来执行查询并获取结果集。

    73710

    C# WPF数据绑定方法以及重写数据模板后数据绑定

    写在前面 本文将会介绍WPF如何实现前后端数据绑定和在进行数据绑定时常用方法和类以及对于DataGrid、ListView这样控件重写数据模板后控件如何进行数据绑定。...如果您是C#及WPF资深开发人员本文可能对您没有太大帮助,但如果你是一个正在学习和了解C#、WPF开发人员来说本文可以帮助你认识MVVM设计模式和数据绑定。...如果想深入详细了解MVVM设计模式百度百科这部分讲解和说明我认为非常详细和系统。也可以阅读下方实例,相信通过代码实例更能够让你MVVM有一个更深入认识。...点击右下角“修改Text内容按钮”下方TextBlock控件内容发生改变 修改小明姓名后点击删除按钮,提示信息显示小明姓名也被更改,说明数据源同时进行了更改。...在DataTemplate中你可以写几乎任意控件,如果需要放多个控件可以使用Grid和StackPanel这类布局控件进行封装。

    63240

    WPF NET5 Prism8.0升级指南

    前言 ​ 曾经我以学习目的写了关于在.NET Core3.1使用Prism系列文章.NET Core 3 WPF MVVM框架 Prism系列文章索引,也谢谢大家支持,事实上当初版本则是Prism7.2.0.1442...,由于用Microsoft.Xaml.Behaviors.Wpf替换System.Windows.Interactivity,因此,xamlxmlns也需要对应更改 3.去除 Bootstrapper...Method使用,这也是官方推荐,因为一般Excuted Method返回值只会是void 二.回答一些问题 如何在Prism使用AOP?  ...,实际上Unity AOP功能非常强大,同样支持通过配置文件来配置AOP和支持不同类型方法拦截,需要了解更多细节在这里可推荐该博文C#中AOP_使用Unity实现AOP 是否所有事件和逻辑都在ViewModel...例如对控件样式变化,鼠标移动控件等View逻辑相关,这时候则推荐用依赖或者附加属性,或在ViewCode-behindcs文件中事件来处理有关View逻辑,不要为了所谓MVVM而把一切逻辑都放在

    2.8K40

    精通 WPF UI Virtualization

    本篇博客主要说明如何使用 UI Virtualization(以下简称为 UIV) 来提升 OEA 框架中 TreeGrid 控件性能,同时,给出了一些学习 UIV 资源。...问题     最近 OEA TreeGrid 控件进行了比较大改造,并使用控件来替换了系统中所有的 DataGrid 控件。...新 TreeGrid 控件实现了很多新功能,(之后会写一篇文章说明),但是最后遗留了一个问题:由于使用它替换了原来 DataGrid,而 DataGrid 默认是支持 UI Virtualization...(它还有后续文章:《Data virtualization》,也很不错)。 之前系统中用到 DataGrid 控件,一旦数据被分组之后,性能异常低下。...》、《Part III》,最后一篇说明了在如何使用 ListBox 模拟一个 TreeView,这样,由于 ListBox 本身支持 UIVirtualization,所以最后 “TreeView”

    2.4K90

    Newbeecoder.UI新版开源控件DataGrid使用说明

    DataGrid控件显示数据和信息集合。在WPF能自定义外观,单元格,表格头部,字体,颜色等内容。 使用ItemsSource属性进行数据源绑定,绑定任何实现IEnuemerable数据源。...Microsoft DocsDataGrid每项功能有详细说明。 在样式中有常见表格选项,如交替行背景和显示/隐藏标题,网格线和滚动条。...Newbeecoder.UI是一个轻量级和扩展性开源项目,基于MVVM开发框架,可用来快速搭建WPF应用程序,而无需了解控件内部实现细节,方便扩展更多控件样式以及使用,该项目使用纯C#+WPF开发,易于扩展和集成到开发项目中...只要你已有系统是使用WPF开发,你都能够使用Newbeecoder.UI来轻易开发出你好看应用程序来集成到你现有项目之中。...Demo下载: Newbeecoder.UI.zip Newbeecoder.UI控件库根据用户需求开发稳定而高效项目,通过视频来演示控件库整体功能: 视频内容 ​ 在控件库中使用DataGrid很简单

    2.9K30

    【我们一起写框架】MVVMWPF框架(五)—完结篇

    前言 这篇文章是WPF框架系列最后一篇,在这里我想阐述一下我框架设计理解。...我上一篇文章《我们都知道,如何不被淘汰。》中谈到,开发人员分为程序员和代码工人两种。 这两种开发人员技术实力差距是巨大;如果框架设计时不考虑团队成员技术实力,那么框架很难发挥出最高战力。...接下来,我们在委托中DataContext数据进行了比较处理,根据比较结果来确定,该行是否显示。...这里我编写了一个DataGridUI控件,由于这个控件是最复杂,如果大家能理解这个控件,相信,其他控件也可以信手捏来。 首先,我们先看下UI界面: ?...相关文章: 【我们一起写框架】MVVMWPF框架(一)—序篇 【我们一起写框架】MVVMWPF框架(二)—绑定 【我们一起写框架】MVVMWPF框架(三)—数据控件 【我们一起写框架】MVVMWPF

    2.2K40

    WPF --- 如何重写WPF原生控件样式?

    引言 上一篇中 WPF --- 重写圆角DataGrid样式,因新产品UI需要,重写了一下微软 「WPF」 原生 DataGrid 样式,包含如下内容: 基础设置,一些基本背景色,字体颜色等。...重写过程中,遇到了两个问题: 如何获取 「WPF」 原生 DataGrid 样式? 滚动条样式中,如何固定滚动条长度? 本篇文章分享一下这两个问题解决办法。...解决方法 我来分别分享一下我遇到这两个问题。 问题1 第一个,如何获取 「WPF」 原生 DataGrid 样式?...Studio 一起安装,平常我也使用 Blend ,做一些自定义控件和动画效果等,是一个非常专业工具。...接下来演示一下如何使用Blend获取 ComboBox 原生样式。 「第一步:」 使用 Blend 创建一个 WPF 项目,在窗体中添加一个 ComboBox 。

    46220

    介绍一款最受欢迎.NET 开源UI库

    概述 今天要带大家了解是一款WPF开源控件库MahApps.Metro。MahApps.Metro是用于创建现代WPF应用程序工具包,它许多开箱即用好东西。...官网学习文档地址:https://mahapps.com/docs/ 风格赏析 Theme有两款,深色和浅色:下面只展示浅色主题 Progress进度条:这里提供了好几款,样式很优雅 datagrid...:表格控件 hamburger Dialogs:消息弹框 用法介绍 看了上面的控件风格,想必有很多小伙伴已经迫不及待想知道这套控件如何在自己项目中使用了,接下来小编就带你正式体验MahApps.Metro...首先,创建项目,然后在github上搜索引用:如果要体验预先发型版,可以勾选图片中红框部分 MahApps内置风格和主题: 使用MetroWindows:要开始全面的MahApps造型和全面的窗口支持...,您需要将您普通窗口更改为我们MetroWindows。

    1.2K30

    【愚公系列】2023年10月 WPF控件专题 DataGrid控件详解

    WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见标准用户界面元素。...一、DataGrid控件详解WPFDataGrid是一个非常强大和灵活控件,它可用于展示和编辑数据。...DataGrid还有许多其他属性和方法,可以根据需求进行使用。1.属性介绍WPFDataGrid控件常见属性如下:AutoGenerateColumns:是否自动生成列,默认为true。...2.常用场景WPFDataGrid控件常用场景包括以下几个方面:数据展示:DataGrid控件可以方便地展示数据表格,特别是当数据量比较大时,使用DataGrid可以快速地进行数据查看和筛选。...数据导入导出:DataGrid控件可以支持数据导入和导出,可以将数据快速地导入到DataGrid中进行展示,也可以将DataGrid数据导出到其他文件格式中,方便数据共享和使用

    1.2K00

    常见 Datagrid 错误

    虽然 Datagrid 控件易于使用,但同样易于给使用者带来麻烦。以下是许多人所犯一些错误,这些人包括从初学者到富有经验 .NET 专家。...忘记在每个 Datagrid 事件中执行 .DataBind() 调用,从而导致发 一个常见问题是:“当我点击 Datagrid 某一行中 Edit(编辑)链接时,页面发,且不包含任何数据。...要使页面大小不增加,最简单方法是无论整个页面,还是单独某些特定控件,都禁用 ViewState。例如,如果页面不产生发,那么整个页面禁用 ViewState 是安全。...否则,请两次回发之间状态信息不会发生更改各个控件禁用 ViewState,或者不需要隐藏字段来跟踪自身状态那些控件禁用 ViewState。... Datagrid 控件或包含 Datagrid 页面禁用 ViewState 时,如果 Datagrid 会启动发事件,那么需要执行一些特殊步骤。

    2.3K20

    推荐一个IT老鸟肝了2月有余免费开源WPF企业级开发框架

    这是一个使用了Prism搭建插件式框架,封装了DataGrid使用,使整个框架子模块简单易学、易扩展,特别是作者还写了一个系列博客教程,值得点赞。...开发框架之客户端入口项目 JHRS开发框架之各子系统如何整合 JHRS开发框架之怎样设计合理ViewModel基类 JHRS开发框架之公用组件用户控件封装 JHRS开发框架之建议遵循一些建目录文件原则...JHRS开发框架之WPF数据验证 JHRS开发框架之ViewModel相互传参和弹框传参解决办法 JHRS开发框架之踩坑记(终章) WPF管理系统开发框架设计图 在正式开始WPF开发框架搭建之前,...做了一些技术选型和在群里面咨询了下WPF技术比较了解群友,当中就属dotnet9.com站长经常被笔者叨扰。...Controls:定义了WPF界面使用公用控件(保存在Controls目录),如通用表格(DataGrid),下拉框等,凡公用控件,都可以保存在此目录。

    2.3K30

    OEA 中 WPF 树型表格虚拟化设计方案

    我们得先看看如何WPF 中实现虚拟化。...那么,在这样层次要求下,要如何实现只使用一个滚动条虚拟化呢?还好,WPF 自带 DataGrid 也带有行列虚拟化功能,我们可以先看一下 DataGrid如何实现。...TreeGrid 虚拟化     根据之前分析,我们已经知道表格 DataGrid 实现虚拟化都需要哪些元素,元素之间是如何交互。...未来改进     其实,TreeGrid 作为 OEA 框架界面层核心控件,主要是在提供 WPF树型表格及一般表格功能。一般表格状态下性能保障由虚拟化技术来实现。...(另外,就算重写了行虚拟化面板,来通过 TreeGridRow 计算出它所有子高度,最后需要显示行进行实例化。

    2.7K70

    Silverlight 2 Beta 1学习资源

    第七部分:使用控件模板定制控件观感 第八部分:使用WPF创建一个Digg桌面应用 这几个教程Dan Whalin's 制作成了视频更直观: http://www.smartwebcontrols.com...Defining Columns for a Silverlight DataGrid: Scott Morrison开始了一个很精彩贴子系列,描述如何使用Silverlight 2 DataGrid...将其发布,然后示范了如何建造一个使用了新Silverlight DataGrid控件Silverlight客户端,该客户端调用WCF服务获取LINQ to SQL数据,将其绑定到DataGrid上。...Sorting with Silverlight 2's DataGrid Control: Silverlight 2 Beta1中DataGrid控件还没有内置列数据排序支持(将在Beta2中提供...在这个贴子里,他展示了如何使用一个定制header列方法来实现排序。也看一下Matt这里贴子,该文提供了一个DataGrid测试页面,展示了目前DataGrid若干特性。

    1.2K70

    【我们一起写框架】MVVMWPF框架(三)—数据控件

    因为WPF控件大多继承自Control,所以我们先创建Control数据控件。...控件定义好了,我们现在看一下如何应用。...因为WPFUI控件被创建以后,要被添加到视觉树中,所以最终会被显示在屏幕上是包裹着控件视觉树;其中视觉树与控件是可以分离;比如控件中绑定数据是10行,而视觉树可以显示3行。...因为DataGrid数据控件是所有数据控件中最复杂,而且代码量特别多;所以,我决定,单拿出一篇来介绍DataGrid。 框架代码已经传到Github上了,并且会持续更新。...相关文章: 【我们一起写框架】MVVMWPF框架(一)—序篇 【我们一起写框架】MVVMWPF框架(二)—绑定 To be continued——DataGrid Github地址:https://

    2.4K30

    XAML常用控件2

    wpf和WinForm中XY轴定义是一样,都是从程序左上角作为原点,原点到右上角这一条线是X轴,原点到左下角这一条线是Y轴。..., 列表项控件 Menu:这个控件专用于菜单项显示,使用其属性ItemsSource绑定后台一个集合或数组,或者使用MenuItem以硬编码形式来填充一个个菜单项,MenuItemHeader...控件 这个控件就是一个表格,跟数据库中表是类似的,并且它职责就是用来显示数据库中数据,下面先看个实例代码: 该控件同样是使用ItemsSource来绑定数据,我们使用控件时要先通过DataGrid.Columns来定义列数量及类型,微软已经为我们定义了上述代码中所示文本...对于该控件使用,后期会详细通过代码体现,如果有任何控件使用问题,您尽可以来垂询。

    2.3K30

    WPF DataGrid 如何将被选中行带到视野中

    WPF DataGrid 如何将被选中行带到视野中 目录 前言 准备工作 方法一 方法二 总结 独立观察员 2021 年 12 月 11 日 前言 在 WPF 开发中,显示表格一般使用 DataGrid...控件,而且我们一般会依据用户选中行操作来执行一些逻辑,这种情况,选中了哪一行,用户是心知肚明。...而还有一种情况,我们可能在业务逻辑中,由程序自己选中了某一行,如果这一行当前不在用户界面的可视区(换句话说也就是滚动条没有滚到那个位置),那么我们如何将其带到用户视野中呢?...使用还是之前用过 DataGrid Demo 程序(在《WPF DataGrid 通过自定义表头模拟首行固定》和《WPF 触屏事件后触发鼠标事件问题及 DataGrid 误触问题》中用过),加了一个可以填写要选中行号文本框...先给 DataGrid 命个名(如 x:Name="Dg" )方便后台使用,然后在 ViewModel 中添加一个选中项改变事件 SelectedItemChanged,并在选中项改变时调用(参数为选中行索引

    1.9K10
    领券