製品の概要 > チュートリアル (Silverlight のみ) > Web サービスへのグリッドの連結 > 手順 3:Web サービスの接続 |
前の手順では、Web サービスを作成し、プロジェクトにデータベースを追加しました。この手順では、引き続き、Web サービスをアプリケーションにリンクします。この手順では Data for Silverlight が必要です。
プロジェクトを設定するには、次の手順に従います。
コードのコピー
|
|
---|---|
Imports System.IO
Imports C1.Silverlight.Data
Imports ComponentOneDataGrid.DataService ' ComponentOneDataGrid はプロジェクトの名前空間です。プロジェクト名に合わせて変更してください。
|
コードのコピー
|
|
---|---|
using System.IO; using C1.Silverlight.Data; using ComponentOneDataGrid.DataService; // ComponentOneDataGrid はプロジェクトの名前空間です。プロジェクト名に合わせて変更してください。 |
コードのコピー
|
|
---|---|
Public Sub New() InitializeComponent() LoadData() End Sub |
コードのコピー
|
|
---|---|
public MainPage()
{
InitializeComponent();
LoadData();
}
|
コードのコピー
|
|
---|---|
Private _ds As DataSet = Nothing Private Sub LoadData() ' Web サービスを呼び出します Dim svc = GetDataService() AddHandler svc.GetDataCompleted, AddressOf svc_GetDataCompleted 'svc.GetDataAsync("Categories,Products,Employees"); svc.GetDataAsync("Employees") End Sub Private Sub svc_GetDataCompleted(sender As Object, e As GetDataCompletedEventArgs) ' エラーを処理します If e.[Error] IsNot Nothing Then _tbStatus.Text = "データダウンロード中にエラーが発生しました..." Return End If ' サーバーからのデータストリームを解析します(DataSet は XML) _tbStatus.Text = String.Format("データは, {0:n0} kBytes", e.Result.Length / 1024) Dim ms = New MemoryStream(e.Result) _ds = New DataSet() _ds.ReadXml(ms) ' コントロールをデータに連結します BindData() End Sub |
コードのコピー
|
|
---|---|
DataSet _ds = null; void LoadData() { // Web サービスを呼び出します var svc = GetDataService(); svc.GetDataCompleted += svc_GetDataCompleted; //svc.GetDataAsync("Categories,Products,Employees"); svc.GetDataAsync("Employees"); } void svc_GetDataCompleted(object sender, GetDataCompletedEventArgs e) { // エラーを処理します if (e.Error != null) { _tbStatus.Text = "データダウンロード中にエラーが発生しました..."; return; } // サーバーからのデータストリームを解析します(DataSet は XML) _tbStatus.Text = string.Format("データは, {0:n0} kBytes", e.Result.Length / 1024); var ms = new MemoryStream(e.Result); _ds = new DataSet(); _ds.ReadXml(ms); // コントロールをデータに連結します BindData(); } |
コードのコピー
|
|
---|---|
' 現在のホスト/ドメインに関連するデータサービスを取得します Private Function GetDataService() As DataServiceSoapClient ' バッファサイズを増やします Dim binding = New System.ServiceModel.BasicHttpBinding() binding.MaxReceivedMessageSize = 2147483647 ' int.MaxValue binding.MaxBufferSize = 2147483647 ' サービスの絶対アドレスを取得します Dim uri As Uri = C1.Silverlight.Extensions.GetAbsoluteUri("DataService.asmx") Dim address = New System.ServiceModel.EndpointAddress(uri) ' 新しいサービスクライアントを返します Return New DataServiceSoapClient(binding, address) End Function |
コードのコピー
|
|
---|---|
// 現在のホスト/ドメインに関連するデータサービスを取得します DataServiceSoapClient GetDataService() { // バッファサイズを増やします var binding = new System.ServiceModel.BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; // int.MaxValue binding.MaxBufferSize = 2147483647; // サービスの絶対アドレスを取得します Uri uri = C1.Silverlight.Extensions.GetAbsoluteUri("DataService.asmx"); var address = new System.ServiceModel.EndpointAddress(uri); // 新しいサービスクライアントを返します return new DataServiceSoapClient(binding, address); } |
コードのコピー
|
|
---|---|
Private Sub BindData() ' テーブルを取得します Dim dtEmployees As DataTable = _ds.Tables("Employees") ' カテゴリグリッドにデータを挿入します _c1DataGrid.ItemsSource = dtEmployees.DefaultView End Sub |
コードのコピー
|
|
---|---|
void BindData() { // テーブルを取得します DataTable dtEmployees = _ds.Tables["Employees"]; // カテゴリグリッドにデータを挿入します _c1DataGrid.ItemsSource = dtEmployees.DefaultView; } |
おめでとうございます。このチュートリアルは終了です。このチュートリアルでは、新しい Silverlight プロジェクトを作成し、Access データベースを追加し、Web サービスを作成して、C1DataGrid コントロールを連結しました。