[索引页]
[源码下载]


稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)


作者:webabcd


介绍
Silverlight 2.0 调用 ADO.NET Data Services (数据服务)。本文以 Northwind 数据库为示例数据库,做一个添加、查询、更新和删除的Demo 
    在 Silverlight 2.0 中调用数据服务只能使用异步方式调用。另外,数据服务要与 Silverlight 宿主放在相同的域上
    System.Data.Services.Client.DataServiceContext - 数据服务上下文
    System.Data.Services.Client.DataServiceQuery - 以指定的 URI 语法查询数据服务
    AddObject(), UpdateObject(), DeleteObject() - 本别用于添加, 更新, 删除实体
    BeginExecute()/EndExecute(), BeginExecuteBatch()/EndExecuteBatch - 用于执行某一个 DataServiceQuery 查询或批量执行(将一组查询一次性地提交到数据服务)
    BeginSaveChanges()/EndSaveChanges() - 用于提交对实体的修改(增,删,改)
    BeginLoadProperty()/EndLoadProperty() - 用于加载指定的属性的值,加载导航属性的时候需要用到它
    AddLink(), SetLink(), DeleteLink() - 分别为创建连接,Added状态(一对多);创建连接,Added状态(多对一);删除连接,Deleted状态


在线DEMO
http://www.cnblogs.com/webabcd/archive/2008/10/09/1307486.html


示例
1、数据服务
NorthwindDataService.svc
%>

NorthwindDataService.svc.cs
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)using System;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Collections.Generic;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Data.Services;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Linq;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.ServiceModel.Web;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Web;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
namespace Silverlight20.Web.DataService
}


2、Silverlight 调用数据服务
DataService.xaml
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)<UserControl x:Class="Silverlight20.Communication.DataService"
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)    xmlns:data
="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data">
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)    
<StackPanel HorizontalAlignment="Left" Margin="5">
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)        
<TextBlock x:Name="lblMsg" Margin="10" Foreground="Red" />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)        
<StackPanel Orientation="Horizontal">
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)            
<TextBlock x:Name="lblCategoryName" Text="类别名称" Margin="10" />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)            
<TextBox x:Name="txtCategoryName" Width="100" Margin="10" />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)            
<TextBlock x:Name="lblDescription" Text="类别备注" Margin="10" />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)            
<TextBox x:Name="txtDescription" Width="100" Margin="10" />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)            
<Button x:Name="btnAdd" Content="添加" Margin="10" Click="btnAdd_Click" />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)        
</StackPanel>
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)        
<StackPanel Orientation="Horizontal">
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)            
<Button x:Name="btnUpdate" Content="更新选中" Margin="10" Click="btnUpdate_Click" />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)            
<Button x:Name="btnDelete" Content="删除选中" Margin="10" Click="btnDelete_Click"  />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)        
</StackPanel>
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)        
<data:DataGrid Name="dataGrid1" Margin="10" AutoGenerateColumns="False" ItemsSource="{Binding}"
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)            SelectionChanged
="DataGrid_SelectionChanged">
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)            
<data:DataGrid.Columns>
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)                
<data:DataGridTextColumn Header="类别ID" Binding="{Binding CategoryID}" />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)                
<data:DataGridTextColumn Header="类别名称" Binding="{Binding CategoryName}" />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)                
<data:DataGridTextColumn Header="类别备注" Binding="{Binding Description}" />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)            
</data:DataGrid.Columns>
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)        
</data:DataGrid>
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)        
<data:DataGrid Name="dataGrid2" Margin="10" AutoGenerateColumns="False" ItemsSource="{Binding}">
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)            
<data:DataGrid.Columns>
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)                
<data:DataGridTextColumn Header="产品ID" Binding="{Binding ProductID}" />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)                
<data:DataGridTextColumn Header="产品名称" Binding="{Binding ProductName}" />
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)            
</data:DataGrid.Columns>
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)        
</data:DataGrid>
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)    
</StackPanel>
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
</UserControl>
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)

DataService.xaml.cs
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)using System;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Collections.Generic;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Linq;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Net;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Windows;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Windows.Controls;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Windows.Documents;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Windows.Input;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Windows.Media;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Windows.Media.Animation;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Windows.Shapes;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Data.Services.Client;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using System.Collections.ObjectModel;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
using Silverlight20.NorthwindDataService;
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
稳扎稳打Silverlight(28) - 2.0通信之调用ADO.NET Data Services(数据服务)
namespace Silverlight20.Communication
}


OK
[源码下载]

相关文章: