Web アプリケーション (ASP.NET) でDBのデータを表示しよう(VS2003 DataAdapter 編)
Windows アプリケーションで DB のデータを表示しよう(VS2003 DataAdapter 編)でやった事を
今度は Web(ASP.NET 1.1)でやってみましょう。
※解説に用いた Visual Studio 2003 Professional Edition です。
サンプルのダウンロード
■プロジェクトの作成
Visual Studio 2003 を起動します。
メニューバーの[ファイル]→[新しいプロジェクト]をクリックします。
すると、こんな感じのダイアログが出てきます。

Windows アプリケーションをクリックして下さい。
プロジェクト名や場所は任意で入力して下さい。
※ここでは、プロジェクト名を MyWebDBApp01 としました。
[OK]ボタンを押下すると、以下の画面が出現します。

プロジェクトの作成はとりあえず、完了しました。
■データ接続の作成
サーバー エクスプローラ(表示されていない場合は、メニューバーの[表示]→[サーバー エクスプローラ]をクリックして表示させてくださいね)の
[データ接続]を右クリックします。コンテキストメニューより、[接続の追加]を選択します。

こんな画面が出てきます。

接続に必要な情報を入力します。(↑の例では、ローカルマシン上の SQL Server 2000 の NorthWind データベースに Windows 認証で接続しようとしています)
入力し終わったら、[接続のテスト]ボタンを押下します。

上記メッセージが出たら、入力した情報が正しいということです。反対に上記以外のメッセージが出た場合、入力した情報に誤りがある可能性があります。
[接続のテスト]が終わったら、[OK]ボタンを押下します。サーバー エクスプローラ には 追加した接続が表示されます。
■データセット(型付データセット)の作成
ソリューション エクスプローラ(表示されていない場合は、メニューバーの[表示]→[ソリューション エクスプローラ]をクリックして表示させてくださいね)の
プロジェクトを選択して、右クリックします。コンテキストメニューより、[追加]→[新しい項目の追加]を選択します。

下図の画面で、データセットを選択し、ファイル名に任意の名前を入力します。
(お尻の .xsd は入れても入れなくてもよいです。ここでは、ファイル名を Customers.xsd としました)

次に、下図のような画面(データセット デザイナ)がでてきます。

前に作成した、サーバー エクスプローラ上の データ接続より、データセット デザイナへ 任意のテーブルをドラッグします。
(ここでは、Customers テーブルを データセットデザイナへドラッグしました)

型付データセットの出来上がりです。
■データアダプタの作成
ツールボックス(表示されていない場合は、メニューバーの[表示]→[ツールボックス]をクリックして表示させてくださいね)の
[データ]タブの中にある、SqlDataAdapter を クリックし、そのままの状態で、デザイナ上の Form をクリックします。

データアダプタ構成ウィザードが始まります。[次へ]ボタンを押下して下さい。

データ接続の選択画面が表示されます。ここでは、先ほど作成したデータ接続を使うことにします。
(ローカルマシンの PC 名が DELLPC なので、画像のような表示になっています。)
[次へ]ボタンを押下します。

クエリの種類の選択画面が表示されます。今回はストアドプロシージャは使わないので、
一番上の[SQL ステートメントの使用]を選択して、[次へ]ボタンを押下します。

SQL ステートメントの生成画面が表示されます。
クエリビルダ を使ったりして、Customers テーブルに対する SELECT 文を記述します。
(この時、SELECT 文で抽出する項目の中に、主キーフィールドを入れておくと、後々に UPDATE 文 や DELETE 文もウィザードが自動生成してくれます)
[次へ]ボタンを押下します。

ウィザード結果の表示画面が表示されます。内容を確認して、[完了]ボタンを押下します。
データアダプタが出来上がりました。

■Web Form に データセット と データグリッド を配置する
ツールボックス(表示されていない場合は、メニューバーの[表示]→[ツールボックス]をクリックして表示させてくださいね)の
[データ]タブの中にある、DataSet を クリックし、そのままの状態で、デザイナ上の Web Form をクリックします。

データセットの追加画面が表示されます。
ここでは、先に作成した Customers データセットを選択しました。

再びデザイナに戻ったら、ツールボックスから DataGrid を選択して Web Form に配置します。

今度は、作成した データセット と DataGrid の関連付けを行います。
DataGrid を選択して、プロパティ ウィンドウ(表示されていない場合は、メニューバーの[表示]→[プロパティ ウィンドウ]をクリックして表示させてくださいね)の
(DataBindings) → 詳細 の、[...] ボタンをクリックして下さい。

DataSource の箇所に、Form に配置した データセットの中の Customers テーブル(DataTable)を選択します。
選択し終わったら、[OK]ボタンを押下します。

■コードを入力
ソリューション エクスプローラ(表示されていない場合は、メニューバーの[表示]→[ソリューション エクスプローラ]をクリックして表示させてくださいね)の
WebForm を 右クリックして、コードエディタを表示させて、以下のコードを入力します。
Public Class WebForm1 Inherits System.Web.UI.Page #Region " Web フォーム デザイナで生成されたコード " 'この呼び出しは Web フォーム デザイナで必要です。 <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.SqlDataAdapter1 = New System.Data.SqlClient.SqlDataAdapter Me.SqlSelectCommand1 = New System.Data.SqlClient.SqlCommand Me.SqlInsertCommand1 = New System.Data.SqlClient.SqlCommand Me.SqlUpdateCommand1 = New System.Data.SqlClient.SqlCommand Me.SqlDeleteCommand1 = New System.Data.SqlClient.SqlCommand Me.SqlConnection1 = New System.Data.SqlClient.SqlConnection Me.Customers1 = New MyWebDBApp01.Customers CType(Me.Customers1, System.ComponentModel.ISupportInitialize).BeginInit() ' 'SqlDataAdapter1 ' Me.SqlDataAdapter1.DeleteCommand = Me.SqlDeleteCommand1 Me.SqlDataAdapter1.InsertCommand = Me.SqlInsertCommand1 Me.SqlDataAdapter1.SelectCommand = Me.SqlSelectCommand1 Me.SqlDataAdapter1.TableMappings.AddRange(New System.Data.Common.DataTableMapping() { _ New System.Data.Common.DataTableMapping("Table", "Customers", _ New System.Data.Common.DataColumnMapping() { _ New System.Data.Common.DataColumnMapping("CustomerID", "CustomerID"), _ New System.Data.Common.DataColumnMapping("CompanyName", "CompanyName"), _ New System.Data.Common.DataColumnMapping("ContactName", "ContactName"), _ New System.Data.Common.DataColumnMapping("ContactTitle", "ContactTitle"), _ New System.Data.Common.DataColumnMapping("Address", "Address"), _ New System.Data.Common.DataColumnMapping("City", "City"), _ New System.Data.Common.DataColumnMapping("Region", "Region"), _ New System.Data.Common.DataColumnMapping("PostalCode", "PostalCode"), _ New System.Data.Common.DataColumnMapping("Country", "Country"), _ New System.Data.Common.DataColumnMapping("Phone", "Phone"), _ New System.Data.Common.DataColumnMapping("Fax", "Fax")})}) Me.SqlDataAdapter1.UpdateCommand = Me.SqlUpdateCommand1 ' 'SqlSelectCommand1 ' Me.SqlSelectCommand1.CommandText = "SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region," & _ " PostalCode, Country, Phone, Fax FROM Customers" Me.SqlSelectCommand1.Connection = Me.SqlConnection1 ' 'SqlInsertCommand1 ' Me.SqlInsertCommand1.CommandText = "INSERT INTO Customers(CustomerID, CompanyName, ContactName, ContactTitle, Address" & _ ", City, Region, PostalCode, Country, Phone, Fax) VALUES (@CustomerID, @CompanyNa" & _ "me, @ContactName, @ContactTitle, @Address, @City, @Region, @PostalCode, @Country" & _ ", @Phone, @Fax); SELECT CustomerID, CompanyName, ContactName, ContactTitle, Addr" & _ "ess, City, Region, PostalCode, Country, Phone, Fax FROM Customers WHERE (Custome" & _ "rID = @CustomerID)" Me.SqlInsertCommand1.Connection = Me.SqlConnection1 Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@CustomerID", System.Data.SqlDbType.NVarChar, 5, "CustomerID")) Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@CompanyName", System.Data.SqlDbType.NVarChar, 40, "CompanyName")) Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ContactName", System.Data.SqlDbType.NVarChar, 30, "ContactName")) Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ContactTitle", System.Data.SqlDbType.NVarChar, 30, "ContactTitle")) Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Address", System.Data.SqlDbType.NVarChar, 60, "Address")) Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@City", System.Data.SqlDbType.NVarChar, 15, "City")) Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Region", System.Data.SqlDbType.NVarChar, 15, "Region")) Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@PostalCode", System.Data.SqlDbType.NVarChar, 10, "PostalCode")) Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Country", System.Data.SqlDbType.NVarChar, 15, "Country")) Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Phone", System.Data.SqlDbType.NVarChar, 24, "Phone")) Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Fax", System.Data.SqlDbType.NVarChar, 24, "Fax")) ' 'SqlUpdateCommand1 ' Me.SqlUpdateCommand1.CommandText = "UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName, Contac" & _ "tName = @ContactName, ContactTitle = @ContactTitle, Address = @Address, City = @" & _ "City, Region = @Region, PostalCode = @PostalCode, Country = @Country, Phone = @P" & _ "hone, Fax = @Fax WHERE (CustomerID = @Original_CustomerID) AND (Address = @Origi" & _ "nal_Address OR @Original_Address IS NULL AND Address IS NULL) AND (City = @Origi" & _ "nal_City OR @Original_City IS NULL AND City IS NULL) AND (CompanyName = @Origina" & _ "l_CompanyName) AND (ContactName = @Original_ContactName OR @Original_ContactName" & _ " IS NULL AND ContactName IS NULL) AND (ContactTitle = @Original_ContactTitle OR " & _ "@Original_ContactTitle IS NULL AND ContactTitle IS NULL) AND (Country = @Origina" & _ "l_Country OR @Original_Country IS NULL AND Country IS NULL) AND (Fax = @Original" & _ "_Fax OR @Original_Fax IS NULL AND Fax IS NULL) AND (Phone = @Original_Phone OR @" & _ "Original_Phone IS NULL AND Phone IS NULL) AND (PostalCode = @Original_PostalCode" & _ " OR @Original_PostalCode IS NULL AND PostalCode IS NULL) AND (Region = @Original" & _ "_Region OR @Original_Region IS NULL AND Region IS NULL); SELECT CustomerID, Comp" & _ "anyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, " & _ "Phone, Fax FROM Customers WHERE (CustomerID = @CustomerID)" Me.SqlUpdateCommand1.Connection = Me.SqlConnection1 Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@CustomerID", System.Data.SqlDbType.NVarChar, 5, "CustomerID")) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@CompanyName", System.Data.SqlDbType.NVarChar, 40, "CompanyName")) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ContactName", System.Data.SqlDbType.NVarChar, 30, "ContactName")) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ContactTitle", System.Data.SqlDbType.NVarChar, 30, "ContactTitle")) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Address", System.Data.SqlDbType.NVarChar, 60, "Address")) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@City", System.Data.SqlDbType.NVarChar, 15, "City")) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Region", System.Data.SqlDbType.NVarChar, 15, "Region")) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@PostalCode", System.Data.SqlDbType.NVarChar, 10, "PostalCode")) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Country", System.Data.SqlDbType.NVarChar, 15, "Country")) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Phone", System.Data.SqlDbType.NVarChar, 24, "Phone")) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Fax", System.Data.SqlDbType.NVarChar, 24, "Fax")) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_CustomerID", System.Data.SqlDbType.NVarChar, 5, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "CustomerID", System.Data.DataRowVersion.Original, Nothing)) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Address", System.Data.SqlDbType.NVarChar, 60, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Address", System.Data.DataRowVersion.Original, Nothing)) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_City", System.Data.SqlDbType.NVarChar, 15, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "City", System.Data.DataRowVersion.Original, Nothing)) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_CompanyName", System.Data.SqlDbType.NVarChar, 40, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "CompanyName", System.Data.DataRowVersion.Original, Nothing)) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_ContactName", System.Data.SqlDbType.NVarChar, 30, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "ContactName", System.Data.DataRowVersion.Original, Nothing)) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_ContactTitle", System.Data.SqlDbType.NVarChar, 30, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "ContactTitle", System.Data.DataRowVersion.Original, Nothing)) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Country", System.Data.SqlDbType.NVarChar, 15, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Country", System.Data.DataRowVersion.Original, Nothing)) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Fax", System.Data.SqlDbType.NVarChar, 24, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Fax", System.Data.DataRowVersion.Original, Nothing)) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Phone", System.Data.SqlDbType.NVarChar, 24, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Phone", System.Data.DataRowVersion.Original, Nothing)) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_PostalCode", System.Data.SqlDbType.NVarChar, 10, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "PostalCode", System.Data.DataRowVersion.Original, Nothing)) Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Region", System.Data.SqlDbType.NVarChar, 15, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Region", System.Data.DataRowVersion.Original, Nothing)) ' 'SqlDeleteCommand1 ' Me.SqlDeleteCommand1.CommandText = "DELETE FROM Customers WHERE (CustomerID = @Original_CustomerID) AND (Address = @O" & _ "riginal_Address OR @Original_Address IS NULL AND Address IS NULL) AND (City = @O" & _ "riginal_City OR @Original_City IS NULL AND City IS NULL) AND (CompanyName = @Ori" & _ "ginal_CompanyName) AND (ContactName = @Original_ContactName OR @Original_Contact" & _ "Name IS NULL AND ContactName IS NULL) AND (ContactTitle = @Original_ContactTitle" & _ " OR @Original_ContactTitle IS NULL AND ContactTitle IS NULL) AND (Country = @Ori" & _ "ginal_Country OR @Original_Country IS NULL AND Country IS NULL) AND (Fax = @Orig" & _ "inal_Fax OR @Original_Fax IS NULL AND Fax IS NULL) AND (Phone = @Original_Phone " & _ "OR @Original_Phone IS NULL AND Phone IS NULL) AND (PostalCode = @Original_Postal" & _ "Code OR @Original_PostalCode IS NULL AND PostalCode IS NULL) AND (Region = @Orig" & _ "inal_Region OR @Original_Region IS NULL AND Region IS NULL)" Me.SqlDeleteCommand1.Connection = Me.SqlConnection1 Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_CustomerID", System.Data.SqlDbType.NVarChar, 5, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "CustomerID", System.Data.DataRowVersion.Original, Nothing)) Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Address", System.Data.SqlDbType.NVarChar, 60, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Address", System.Data.DataRowVersion.Original, Nothing)) Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_City", System.Data.SqlDbType.NVarChar, 15, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "City", System.Data.DataRowVersion.Original, Nothing)) Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_CompanyName", System.Data.SqlDbType.NVarChar, 40, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "CompanyName", System.Data.DataRowVersion.Original, Nothing)) Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_ContactName", System.Data.SqlDbType.NVarChar, 30, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "ContactName", System.Data.DataRowVersion.Original, Nothing)) Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_ContactTitle", System.Data.SqlDbType.NVarChar, 30, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "ContactTitle", System.Data.DataRowVersion.Original, Nothing)) Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Country", System.Data.SqlDbType.NVarChar, 15, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Country", System.Data.DataRowVersion.Original, Nothing)) Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Fax", System.Data.SqlDbType.NVarChar, 24, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Fax", System.Data.DataRowVersion.Original, Nothing)) Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Phone", System.Data.SqlDbType.NVarChar, 24, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Phone", System.Data.DataRowVersion.Original, Nothing)) Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_PostalCode", System.Data.SqlDbType.NVarChar, 10, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "PostalCode", System.Data.DataRowVersion.Original, Nothing)) Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Region", System.Data.SqlDbType.NVarChar, 15, _ System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Region", System.Data.DataRowVersion.Original, Nothing)) ' 'SqlConnection1 ' Me.SqlConnection1.ConnectionString = "workstation id=DELLPC;packet size=4096;integrated security=SSPI;data source=""(loc" & _ "al)"";persist security info=False;initial catalog=Northwind" ' 'Customers1 ' Me.Customers1.DataSetName = "Customers" Me.Customers1.Locale = New System.Globalization.CultureInfo("en-US") CType(Me.Customers1, System.ComponentModel.ISupportInitialize).EndInit() End Sub Protected WithEvents SqlDataAdapter1 As System.Data.SqlClient.SqlDataAdapter Protected WithEvents SqlSelectCommand1 As System.Data.SqlClient.SqlCommand Protected WithEvents SqlInsertCommand1 As System.Data.SqlClient.SqlCommand Protected WithEvents SqlUpdateCommand1 As System.Data.SqlClient.SqlCommand Protected WithEvents SqlDeleteCommand1 As System.Data.SqlClient.SqlCommand Protected WithEvents SqlConnection1 As System.Data.SqlClient.SqlConnection Protected WithEvents Customers1 As MyWebDBApp01.Customers Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid 'メモ : 次のプレースホルダ宣言は Web フォーム デザイナで必要です。 '削除および移動しないでください。 Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init ' CODEGEN: このメソッド呼び出しは Web フォーム デザイナで必要です。 ' コード エディタを使って変更しないでください。 InitializeComponent() End Sub #End Region ''' ----------------------------------------------------------------------------- ''' <summary> ''' ページがロードされた時に発生します。 ''' </summary> ''' ----------------------------------------------------------------------------- Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not IsPostBack Then Me.SqlConnection1.Open() Me.SqlDataAdapter1.Fill(Me.Customers1) Me.SqlConnection1.Close() Me.DataGrid1.DataBind() End If End Sub End Classちなみに、WebForm1.aspx は以下の様になっているはずです。
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="MyWebDBApp01.WebForm1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <FONT face="MS UI Gothic"> <asp:DataGrid id=DataGrid1 style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" runat="server" DataSource='<%# DataBinder.Eval(Customers1, "Tables[Customers]") %>'> </asp:DataGrid></FONT> </form> </body> </HTML>
データ接続を作成する際、SQL Server への認証を「Windows 認証」にしました。
ASP.NET の場合は、実行時に SQL Server へログオンするのは、ASPNET ユーザーになります。
その為、SQL Server にログインする権限がないとエラーが発生します。
ASPNET ユーザーに権限を与える方法もありますが、通常は "偽装" と呼ばれるテクニックを使います。
偽装をする為にもっともポピュラーな方法は、web.config ファイルに以下の一文を追記します。
<identity impersonate="true" userName="SQL Server にアクセスできる権限のあるユーザー名" password="userName に記述したユーザーの Windows ログオンパスワード" />
■デバッグ実行!
コードの入力が終わったら、メニューバーの[デバッグ]→[開始]をクリックしましょう。

↑のような画面が出現したら、大成功です!
画面右上の×ボタンをクリックしてプログラムを終了させて下さい。
■ひとこと
ほとんど Windows と変わりませんね。
注意するところは、SQL Server で Windows 認証を行う場合 と DataGrid オブジェクト.DataBind() を忘れない事くらいでしょうか。