VS 2008/ASP.NET 3.5のホームへ戻る

LinqDataSourceコントロール

 

ASP.NET 3.5では、LINQ to SQLクラスに対応した専用のLinqDataSourceコントロールが追加されました。LinqDataSourceは、ObjectDataSourceコントロールのようにデータベースのテーブルからレコードを抽出したり、レコードを追加、更新、削除することができます。

 

たとえば、LinqDataSourceを使用してGridViewCategoriesテーブルを表示するには、「GridViewタスク」メニューのデータソースの選択から<新しいデータソース…>を選択します。「データソース構成ウィザード」が表示されたら「LINQ」を選択して[OK]をクリックします。

 

図 データソースの種類から「LINQ」を選択する

 

「コンテキストオブジェクトの選択」が表示されたら「NwindSQLDataContext」を選択して[次へ]をクリックします。NwindSQLDataContextは、「新しい項目の追加」ダイアログから「LINQ to SQLクラス」を選択して事前に作成しておきます。

 

図 ドロップダウンリストから「NwindSQLDataContext」を選択する

 

「データの選択の構成」が表示されたら「テーブル」から「Category(Table<Category>)」を選択して「CategoryID」列と「CategoryName」列を選択します。[完了]ボタンをクリックするとGridViewLinqDataSourceがバインドされます。

 

<asp:GridView ID="GridView1" runat="server"

  AutoGenerateColumns="False"

  DataSourceID="LinqDataSource1">

  <Columns>

    <asp:BoundField DataField="CategoryID" HeaderText="CategoryID"

      ReadOnly="True" SortExpression="CategoryID" />

    <asp:BoundField DataField="CategoryName" HeaderText="CategoryName"

      ReadOnly="True" SortExpression="CategoryName" />

  </Columns>

</asp:GridView>

<asp:LinqDataSource ID="LinqDataSource1" runat="server"

  ContextTypeName="NwindSQLDataContext"

  Select="new (CategoryID, CategoryName)"

  TableName="Category">

</asp:LinqDataSource>

 

図 CategoryテーブルからCategoryID列とCategoryName列を選択する

 

図 GridViewCategoryテーブルが表示された

 

GridViewにレコードの編集、削除機能を付加するには、LinqDataSourceの「データの選択構成」でCategoryテーブルの列を選択するとき、すべての列を意味する「*」をチェックします。次に、[詳細設定]ボタンをクリックして「詳細設定」ダイアログからレコードの更新、削除をチェックして[OK]ボタンをクリックします。CategoryテーブルからCategoryIDCategoryName列などを個別にチェックして選択すると[詳細設定]ボタンがグレイアウトされて無効になります。LinqDataSourceは、レコードの楽観的排他制御を自動的に組み込みますのでテーブルのすべての列を選択する必要があります。

 

図 レコードの挿入、更新、削除を行うにはすべての列「*」を選択する

 

GridViewにレコードの編集、削除を追加した例

 

VS 2008/ASP.NET 3.5のホームへ戻る