WPF-EDM: 绑定存储过程

Categories: WPF
Tags: No Tags
Comments: No Comments
Published on: 2010 年 07 月 06 日

[原文作者]:Gavin Fu [原文链接]:WPF-EDM: Binding to Stored Procedures 使用存储过程转换数据库数据         在建立WPF 数据库应用程序时,你可能不希望直接显示从数据表中得到的原始数据。相反,你希望将原始数据转换成更有意义的信息来显示。你可以在你的WPF应用程序中转换数据,或者你可以在存储过程中实现转换的逻辑并将其绑定到你的应用程序中。使用存储过程转换数据提供了以下几点好处: 模块化编程         存储过程和数据表同时存储在数据库中。他们能被多个应用程序共享,而且可以被独立修改,这使得数据转换逻辑更容易维护。         同时,存储过程可以简化应用程序的编写。存储过程可能会对多个数据表进行操作。 但编写应用程序的程序员们并不需要关心这些细节,他们只需关注输入和输出。 更快地执行         在存储过程第一次执行时,它会被解析和优化,并且编译好的存储过程会驻留在内存缓存中供以后使用,这样执行起来会快得多。         存储过程结合数据绑定以及Visual Studio 2010丰富的工具支持,你可以轻松地建立应用程序来传递并显示数据库数据。我们会实现一个列出客户订购的所有产品总数的主从信息视图应用程序作为示例。 示例应用程序 – 数据模型         示例应用程序所使用的数据模型如下所示。在这里会用到四个数据表。每个客户可以有多个订单,每个订单会包含多个产品。         在这个应用程序中,我们不想显示客户订单的所有详细信息。相反,我们只想显示客户所购买的产品,以及每样产品客户购买的总数。 为此,我们要创建存储过程,并将其存储在数据库中。 假设存储过程的名称是CustOrderHist: ALTER PROCEDURE CustOrderHist @CustomerID nchar(5) AS SELECT ProductName, Total=SUM(Quantity) FROM Products P, [Order Details] OD, Orders O, [...]

如何绑定数据集到WPF设计器

Categories: Data, WPF
Tags: No Tags
Comments: No Comments
Published on: 2010 年 06 月 18 日

[原文作者]:Yao Hai [原文链接]:WPF Data Binding: How to Bind DataSet to WPF Designer         在我们前面的章节中,对于WPF数据绑定方案,我们常常使用的是实体数据模型作为ORM(对象关系映射)层。         同时,自从数据集的广泛使用, 我们也提供对数据集作为数据源在数据绑定方法。下面的例子是使用C#一步一步实现的,这个例子是基于Visual Studio 2010 Beta2 版本。 绑定数据集到WPF 设计器         1. 打开Visual Studio 从主菜单: 文件->新建项目,选择WPF 应用程序 创建一个新的C#应用程序。这里我们就使用项   目默认的名称: WpfApplication1。         2. 从主菜单: 数据-> 增加新的数据源…->数据库->数据集触发数据源向导。         3. 根据这个向导连接到数据库Northwind,然后选择表Customers,Orders。完成这一步以后,下面的截图就是数据库显示的状态。           4. 从主菜单: 数据->显示数据源显示数据源工具窗口,确保MainWindow.xaml是个活动的窗口。         5. 切换到数据源工具窗口,你可以单击”Customers” 节点和下拉菜单。在context菜单中, [...]

Visual Studio 2010 中WPF拖拽式数据绑定

Categories: Visual Studio, WPF
Tags:
Comments: No Comments
Published on: 2008 年 12 月 17 日

[原文作者]:Milind Lele [原文链接]:Drag-drop data binding for WPF in Visual Studio 2010       08年11月19日12:39PM 上传 VS的2010版本(点击此处下载)比以前的一个改进的地方是WPF的拖拽式数据绑定,WinForms的拖拽式数据绑定在Visual Studio 2005就已经存在了。我们在VS2010把拖拽式数据绑定应用到了WPF上。如果你熟悉WinForms的数据绑定,你会发现WPF的拖拽式数据绑定和WinForms的很相似。   VS2008 SP1让我们可以在工程中添加一个EDM(实体数据模型),在VS2010中,添加了在数据源窗口中支持EDM这一功能,所以如果添加了一个EDM到工程中,这个EDM可以显示在数据源窗口中,你知道拖动这个EDM到WPF窗体中就可以完成绑定了。 具体信息我发布在Visual Studio Data blog上了。 你可以下载CTP体验一下,然后告诉我你的想法。

WPF在SP1中更好的数据编辑功能

Categories: WPF
Comments: No Comments
Published on: 2008 年 10 月 20 日

[原文作者]:Beth Massi     [原文链接]:Better Data Editing Features in WPF with SP1               当我开始钻研数据绑定时,在WPF中我最想念的一项功能,是在BindingListCollectionView和我所喜欢的winforms BindingSource之间的一致性功能。BindingListCollectionView就像在winforms下的资源捆绑一样,提供了限制收集数据(或数据表)的导航、流动、过滤和排序。    然而在合集中并不支持处理添加和删除项目。你可以从我的WPF窗体数据录像中注意到,当我从数据中添加或者删除一行时,我只能直接进入数据表进行操作。当我用数据表工作时这不会有问题,因为他们可以做他们自己的处理编辑(连同修改记录)。不过,为了有良好的客户业务集合,实现典型的绑定接口,这通常是一个必要的功能。 SP1在WPF’s BindingListCollectionView中增加了新的属性和方法    发布的Visual Studio/.NET FX SP1已经增强了BindingListCollectionView,包括新的属性和方法:CanAddNew 属性, CanCancelEdit 属性, CanRemove属性, CurrentAddItem属性, CurrentEditItem属性, IsAddingNew属性, IsEditingItem属性, ItemProperties属性, NewItemPlaceholderPosition属性, AddNew方法, CancelEdit 方法, CancelNew 方法, CommitEdit 方法, CommitlNew 方法, EditItem 方法, Remove 方法, RemoveAt 方法. [...]

基于WPF LINQ的动态数据模型

Categories: LINQ, WPF
Comments: No Comments
Published on: 2008 年 09 月 22 日

[原文作者]:Beth Massi [原文链接]:Dynamic Data Entry with WPF and LINQ    上一节我讲到用XML编写动态WPF UI, 尽管这里的UI是动态生成的,但仍有一处不尽人意的地方,就是我们采用的是一个具体的对象customer(来源于LINQ to SQL classes)。 如果想要我们的应用程序既能够动态生成WPF UI 又能动态地编辑处理数据库里的任何表数据,就需要进一步参数化程序代码 ——而不仅限于customer。 这样只需要修改数据库表的定义而不用更新对象模块和重新编译代码。    实现方法是试图在运行时加载,处理一个简单的无类型的(或者称作通用类型)DataTable,并运用XML literals特性 –为SqlDataAdapter生成SELECT和UPDATE语句。要注意一件事情,这个过程必须依赖数据库验证规则。因此这种方式只能用于处理非常简单的表(缩略语.维护表)。      我需要创建一个强类型(指定类型)的DataTable包含表的定义,用来取代LINQ to SQL模板。这个datatable存储了字段的元数据(字段名,类型,等等)以便我们对表的操作。右键点击项目工程,添加新模板,选择DataSet template。我将它命名为TableSchemaDataSet,然后拖拽Server Explorer-〉Data Connection –〉Northwind Database下的存储过程GetTableSchema(这个已经在前面章节中生成好了)到DataSet 设计器上,自动为我们生成所需的DataTable,重命名为TableSchema,并保存。      接下来精彩的部分。因为我们并不想知道当前表的定义,我们会加载一个通用类型的DataTable生成一个动态的WPF 窗口。DataTable和DataSet都建好了,还有两个步骤需要手动设置。    首先定义一个公共属性(Public Property)存放表名,同时设置默认值为“Shippers”,然后创建一批私有变量引用所需的ADO.NET对象。 Imports <xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> Imports <xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> Imports System.Windows.Markup Imports [...]

page 1 of 2»

Welcome , today is 星期二, 2012 年 05 月 22 日