SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows Azure MarketPlace DataMarket入門

Windows Azure MarketPlace DataMarketを使用した開発事始め

Windows Azure MarketPlace DataMarket入門(後編)

C#でフィックスクエリデータを使用する

 では、次回はクエリが制限された情報の場合のアプリケーションを作成します。フレキシブルクエリのデータを取得するために作成したプロジェクトをそのまま使います。

準備

 今回はAlteryx, LLCから提供されている「Census Demographic Data」を使用します。このデータは人口統計などのデータで構成されてます。まずはサブスクリプションを購入してください。サブスクリプションを購入すると各情報のページに.NET Class Libraryのリンクが表示されるようになるので、「CensusDemographicDataContainer.cs」を任意の箇所にダウンロードしてください。このファイルが「Census Demographic Data」の情報を使用するためのライブラリファイルになります。

.NET Class Libraryのリンク箇所
.NET Class Libraryのリンク箇所

 このダウンロードしたファイルをプロジェクトに追加します。プロジェクト名(今回はDataMarket)を右クリックしてメニューを表示して、[追加]→[既存の項目]でダイアログから選択して追加します。

コンテキストの作成

 フレキシブルデータの場合と基本的に処理は変わりませんが、必須引数があり専用のライブラリを使用する点が異なります。まず「CensusDemographicDataContainer.cs」をプロジェクトのフォルダに配置した上で、Webロールのプロジェクトを右クリックしてプルダウンメニューを表示し[追加]→[既存の項目]でプロジェクトに追加します。次に「DataMarketContext.cs」にデータを操作するクラスを実装します。

[リスト3]DataMarketContext.cs
[DataObject]
public class CensusDemographicDataContext
{

    private string YOURLIVEID = "";
    private string YOURACCOUNTKEY = "";
    private Uri serviceUri;
    private CensusDemographicDataContainer context;

    public CensusDemographicDataContext()
    {
        serviceUri = new Uri("https://api.datamarket.azure.com/Data.ashx/Alteryx/CensusDemographicData/");
        context = new CensusDemographicDataContainer(serviceUri);
        context.Credentials = new NetworkCredential(
                YOURLIVEID,
                YOURACCOUNTKEY);
    }

[DataObjectMethod(DataObjectMethodType.Select)]
public IEnumerable<CensusDemographicDataEntity> GetCensusDemographicData(double longitude, double latitude)
{
        return context.GetCensusDemographicData(longitude, latitude, null, null);
    }
}

フォーム画面の作成

 次に、データの入力・表示を行うフォーム画面(CensusDemographicData.aspx)を作成します。今回は最低限の必須項目であるLongitudeとLatitudeを元に検索を行うため、2つの入力項目の入力を行うテキストボックス、検索結果を表示するGridView、データバインドのためのObjectDataSource、検索を行うためのボタンを配置します。

[リスト4]CensusDemographicData.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CensusDemographicData.aspx.cs" Inherits="DataMarket.CensusDemographicData" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
     <h1>Census Demographic Dataのリスト</h1>
    
        Longitude<asp:TextBox ID="LongitudeTextBox" runat="server"></asp:TextBox>
        <br />
        Latitude<asp:TextBox ID="latitudeTextBox" runat="server"></asp:TextBox>
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" Text="検索" />
        <br />
        <br />
        <asp:ObjectDataSource ID="CensusDemographicDataSource" runat="server" 
            OldValuesParameterFormatString="original_{0}" 
            SelectMethod="GetCensusDemographicData" 
            TypeName="DataMarket.CensusDemographicDataContext">
            <SelectParameters>
                <asp:ControlParameter ControlID="LongitudeTextBox" Name="longitude" 
                    PropertyName="Text" Type="Double" DefaultValue="33.37321" />
                <asp:ControlParameter ControlID="latitudeTextBox" Name="latitude" 
                    PropertyName="Text" Type="Double" DefaultValue="-111.47521" />
            </SelectParameters>
        </asp:ObjectDataSource>
        <br />
        <asp:GridView ID="CensusDemographicGridView" runat="server" AutoGenerateColumns="False" 
            DataSourceID="CensusDemographicDataSource" >
            <Columns>
                <asp:BoundField DataField="NAME" HeaderText="NAME" SortExpression="NAME" />
                <asp:BoundField DataField="KEY" HeaderText="KEY" SortExpression="KEY" />
                <asp:BoundField DataField="POP00" HeaderText="POP00" SortExpression="POP00" />
            </Columns>
        </asp:GridView>
    
    </div>
    </form>
</body>
</html>

 今回もフレキシブルデータのサンプル同様に、画面レイアウトの都合上最低限のデータのみを表示していますが、他の項目もすべて取得済みなので容易に表示できます。

サンプルアプリケーションの表示結果
サンプルアプリケーションの表示結果

次のページ
PHPを使用してDataMarketのデータを呼び出す

この記事は参考になりましたか?

Windows Azure MarketPlace DataMarket入門連載記事一覧
この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト bird982000(bird982000)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5763 2011/03/07 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー