ASP.NET から Windows Azure SQL データベースを関連付ける方法
SQL Server と同様、Microsoft Windows Azure SQL データベースのデータを ASP.NET コントロールにバインドすることができます。SqlDataSource クラスは Windows Azure SQL データベースと互換性があるため、既存のソリューションも接続文字列を変更するだけで変換できます。
注 |
|---|
| Windows Azure SQL データベースではサポートされない Transact-SQL ステートメントもあります。詳細については、「Transact-SQL リファレンス (Windows Azure SQL データベース)」を参照してください。 |
SQL データベース でのデータベースへの接続に関する基本的な注意事項については、「Windows Azure SQL データベースに接続するためのガイドライン」を参照してください。
SQL データベースへの ASP.NET データのバインド
この例では、Windows Azure でホストされるサービスから、ASP.NET の GridView コントロールを SQL データベース にバインドします。GridView コントロールを使用することで、コードを記述することなく、SQL データベース に対してデータの挿入、更新、および削除を実行できます。
この例に従って操作を行うには、Windows Azure SDK および Windows Azure Tools for Microsoft Visual Studio をインストールする必要があります。ただし、この手順のほとんどは ASP.NET プロジェクトに適用されます。Windows Azure の詳細については、「Windows Azure SDK」を参照してください。さらに、Windows Azure Tools でインストールされる開発ストレージ サービスを、DSInit ユーティリティを使用して初期化する必要があります。開発ストレージの初期化は 1 回のみ実行してください。詳細については、「開発ストレージについて」を参照してください。
TestDb データベースの作成
-
sqlcmd ユーティリティを使用して SQL データベース サーバーに接続します。詳細については、「sqlcmd を使用して Windows Azure SQL データベースに接続する方法」を参照してください。
-
次の Transact-SQL コマンドを実行します。
1> CREATE DATABASE TestDb; 2> GO 1> QUIT
-
TestDbに接続し、次の Transact-SQL コマンドを実行します。1> CREATE TABLE Table1 (Col1 int primary key, Col2 varchar(20)); 2> GO 1> INSERT INTO Table1 (Col1, Col2) VALUES (1, 'string1'), (2, 'string2'); 2> GO 1> QUIT
GridView コントロールの作成
-
Visual Studio で、[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
注Windows Azure 開発ファブリックを使用するには、管理者として Visual Studio を実行する必要があります。 -
[新しいプロジェクト] ダイアログ ボックスの [インストールされているテンプレート] ボックスの一覧で、Visual C# または Visual Basic の [クラウド] をクリックします。
-
[テンプレート] ボックスの一覧で、[Windows Azure プロジェクト] をクリックします。名前として「DataBinding」と入力し、[OK] をクリックします。
-
[新しい Windows Azure プロジェクト] ダイアログ ボックスで、[ロール] ボックスの一覧の [ASP.NET Web ロール] をクリックし、矢印ボタンをクリックして [Windows Azure ソリューション] ボックスの一覧に追加します。[OK] をクリックします。
-
Default.aspx で、[デザイン] をクリックしてデザイン ビューに切り替えます。
-
ツールボックスからデザイン画面に、GridView コントロールをドラッグします。
-
GridView の [プロパティ] ウィンドウで、AutoGenerateDeleteButton および AutoGenerateEditButton を true に設定します。
データ ソースへのコントロールのバインド
-
ソリューション エクスプローラーで、Web ロール プロジェクト内の Web.config をダブルクリックします。
-
Web.config に、次のコードを追加します。
<connectionStrings> <add name="SQLAzureConnection" connectionString="Data Source=<ProvideServerName>.database.windows.net;Initial Catalog=TestDb;User ID=<ProvideUserName>;Password=<ProvidePassword>;Encrypt=true;Trusted_Connection=false;" providerName="System.Data.SqlClient" /> </connectionStrings>
これにより、SQL データベース の接続文字列が追加されます。
-
Default.aspx で、[ソース] をクリックしてソース ビューに切り替えます。
-
次のコードを追加して、接続用の SqlDataSource コントロールを作成します。
<asp:SqlDataSource ID="SqlAzureDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:SQLAzureConnection %>" InsertCommand="INSERT INTO [Table1] ([Col1], [Col2]) VALUES (@Col1, @Col2)" SelectCommand="SELECT * FROM [Table1]" UpdateCommand="UPDATE [Table1] SET [Col2] = @Col2 WHERE [Col1] = @Col1" DeleteCommand="DELETE FROM [Table1] WHERE [Col1] = @Col1"> <UpdateParameters> <asp:Parameter Name="Col2" Type="String" /> <asp:Parameter Name="Col1" Type="Int32" /> </UpdateParameters> <InsertParameters> <asp:formParameter Name="Col1" FormField="TextBox1" /> <asp:formParameter Name="Col2" FormField="TextBox2" /> </InsertParameters> <DeleteParameters> <asp:Parameter Name="Col1" Type="Int32" /> </DeleteParameters> </asp:SqlDataSource>これには、コントロールの SELECT、INSERT、UPDATE、および DELETE ロジックが含まれています。
-
GridView コントロールのコードに、
DataSourceID="SqlAzureDataSource"属性およびDataKeyNames="Col1"属性を追加します。 -
F5 キーを押して、ソリューションを実行します。
参照