| 製品の概要 > チュートリアル (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 コントロールを連結しました。