作成および Visual C# .NET を使用して型指定されたデータセットを使用する方法

概要

この資料では、作成し、小規模な Web アプリケーションで型指定されたデータセットを使用する方法を示します。[型指定されたデータセットデータセットクラスから継承するデータセットデータ テーブルDatacolumn、厳密な型指定の使用に付属している多くの利点を生成のファースト クラスのメンバーを作成します。

要件

次に示すは、推奨されるハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、スキルと知識、および service pack を次の手順を完了する必要がある場合です。
  • 6.5 (またはそれ以降) の Microsoft SQL Server の Northwind データベースに
以前のスキルが必要な。
  • Microsoft SQL Server に関する一般的な知識
  • Microsoft Visual Studio .NET に関する一般的な知識
  • Microsoft ADO.NET に関する一般的な知識
  • Microsoft .NET の Web コントロールに関する一般的な知識

型指定されたデータセット

Visual Studio .NET を使用して小規模な Web アプリケーションを作成する手順に従います。Web アプリケーションでは、Northwind データベースで即席の SQL クエリの結果を表示するのには型指定されたデータセットを使用します。
  1. Visual Studio .NET を起動します。
  2. Visual C# .NET では、 TDSをという名前の新しい Web アプリケーション プロジェクトを作成します。
  3. ソリューション エクスプ ローラーが表示されることを確認します。ソリューション エクスプ ローラーが表示されない場合は、ctrl キーと alt キーを押しながら L キーを押します。
  4. エディター ウィンドウで WebForm1.aspx ファイルが開いていることを確認します。ファイルが開いていない場合は、ファイルを開くためのソリューション エクスプ ローラーでWebForm1.aspxをダブルクリックします。
  5. エディター] ウィンドウで、[デザイン ビューに切り替えるには、デザインをクリックします。
  6. ツールボックスを開くには、ctrl キーと alt キーを押しながら X を押します。ツールボックスで、 Web フォームをクリックします。選択し、以下をページの左上隅にドラッグします。 (各ラベルの右側に配置されている) テキスト ボックスの後にラベルの 2 つの行です。下で、これらと同じ方法でデータ グリッドを追加します。
  7. 上のラベルをクリックします。[プロパティ] ウィンドウを表示するには、f4 キーを押します。製品Text プロパティを変更します。その他のラベルをクリックし、カテゴリに、 Text プロパティを変更します。
  8. プロジェクトに新しいデータセットを追加するのには ctrl キーと shift キーを押しながら A キーを押してし、テンプレートの一覧で [データセット] をクリックします。次のデータセットの名前: dsProducts.xsd。ファイルが XML スキーマでは実際には注意してください。[OK] をクリックします。エディター ウィンドウで淡い黄色ページが表示されます。
  9. 型指定されたデータセットを作成するには、サーバー エクスプ ローラーを開くには CTRL + ALT + S を押します。
  10. サーバー] をクリックして [コンピューター名] をクリックして、 SQLServersサーバー名をクリックして、[ Northwind] をクリック、し、[ビュー] をクリックします。
  11. 五十音順商品リストでは、Northwind SQL Server ビューを選択し、色は薄い黄色のデータセットページにビューをドラッグします。ビューによって生成される結果セットのビジュアル表現は、ページに表示されます。スキーマ ファイルの実際の XML を表示するには、エディター ウィンドウの下にある「 XML 」ボタンをクリックしてします。
  12. 今すぐ SQL Server オブジェクトに基づいたスキーマが存在しています。最初に作成し、型指定されたデータセットを入力には、スキーマにマップするクラスを生成する必要があります。デザイン ビューを右クリックし、 [データセットの生成] オプションが選択されていることを確認します。選択されていない場合は、それを選択します。スキーマを保存してクラスを生成するには、CTRL + S を押します。
  13. 新しい型指定されたデータセットクラスを表示するには、ソリューション エクスプ ローラーで[すべてのファイルをクリックします。
  14. DsProducts.xsdの横にツリーを展開します。新しいクラスへのマッピング スキーマが含まれている dsProducts.vb ファイルを参照してください。ファイルへの変更を追跡するために使用される dsProducts.xsx ファイルも参照してください。
  15. 型指定されたデータセットを表示するコードを記述するには、(Web コントロール) ではなく Web フォーム上で直接ダブルクリックします。Web フォームの分離コードが表示され、 Page_Loadイベント内に挿入ポイントがあります。
  16. System.Data.SqlClient 名前空間内に存在するクラスを含めるには、分離コードの先頭に次のusingステートメントを追加します。
    using System.Data.SqlClient;
    : Visual Studio .NET で Web アプリケーションを作成するとき、この小規模な Web アプリケーションに存在する必要がある他の名前空間はプロジェクトで参照に自動的にします。

  17. Page_Loadイベント プロシージャで、 SqlConnectionクラスの既定のコンス トラクターに接続文字列を渡すことによって接続オブジェクトを作成します。
    SqlConnection cn = new SqlConnection("server=myserver;uid=myuid;pwd=mypassword;database=northwind");
  18. いきますオブジェクトには、SqlCommand オブジェクトを作成します。即席の SQL ステートメントと、新しい接続オブジェクトを SqlCommand コンス トラクターに渡します。前者は、新しい SqlCommand オブジェクトのCommandTextプロパティを設定します。ストアド プロシージャの名前を渡すこともできます。
    SqlCommand cmd = new SqlCommand("select * from [Alphabetical list of products]", cn);
  19. 新しい SqlCommand オブジェクトをコンス トラクターに渡すいきますオブジェクトのインスタンスを作成します。
    SqlDataAdapter da = new SqlDataAdapter(cmd);
  20. データベースに接続し、データを返すために必要なオブジェクトを作成するようになりました。型指定されたデータセットのコードを次に示します。DsProductsクラスのインスタンスが作成されることに注意してください: dsProducts スキーマにマップし、ジェネリックデータセットクラスではなく自体のDataSetクラスから継承するクラスです。
    dsProducts tds = new dsProducts();
  21. いきます、型指定されたDataSetオブジェクトを渡すことのFillメソッドを呼び出すし、データセットDataTable TableNameプロパティを入力します。
    da.Fill(tds, tds.Tables[0].TableName);
  22. 型指定されたデータセットデータ テーブルの厳密に型指定された列にテキスト ボックス コントロールのTextプロパティを設定するには、次の形式を使用します。
    dsProducts.DataTableName[RowIndex].ColumnName
    このサンプル アプリケーションでは、5 に固定されるため、引数 RowIndex です。
    TextBox1.Text = tds.Alphabetical_list_of_products[5].ProductName;TextBox2.Text = tds.Alphabetical_list_of_products[5].CategoryName; 

    コレクションは 0 から始まる、ので、ページが読み込まれるときは、テキスト ボックス コントロールがDataGridの 6 行目の項目の商品とカテゴリ名を表示することに注意してください。
  23. DataGridのすべての結果を表示するに、新しい型指定されたデータセットにデータ グリッドのDataSourceプロパティを設定し、 DataBind()を呼び出します。
    DataGrid1.DataSource = tds;DataGrid1.DataBind();

(WebForm1.aspx) を一覧表示するコードを実行します。

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="TDS.WebForm1" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<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">
<asp:Label id="Label1" runat="server" >Label</asp:Label>
<asp:DataGrid id="DataGrid1" runat="server" ></asp:DataGrid>
<asp:TextBox id="TextBox2" runat="server"></asp:TextBox>
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:Label id="Label2" runat="server" >Label</asp:Label>
</form>
</body>
</HTML>

(WebForm1.aspx.cs) を一覧表示するコードを実行します。

using System.Data.SqlClient;
namespace TDS
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.TextBox TextBox2;
protected System.Web.UI.WebControls.DataGrid DataGrid1;

private void Page_Load(object sender, System.EventArgs e)
{
SqlConnection cn = new SqlConnection("server=localhost;uid=sa;pwd=abcd;database=northwind");
SqlCommand cmd = new SqlCommand("select * from [Alphabetical list of products]", cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
dsProducts tds = new dsProducts();

da.Fill(tds, tds.Tables[0].TableName);
TextBox1.Text = tds.Alphabetical_list_of_products[5].ProductName;
TextBox2.Text = tds.Alphabetical_list_of_products[5].CategoryName;

DataGrid1.DataSource = tds;
DataGrid1.DataBind();

}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.TextBox1.TextChanged += new System.EventHandler(this.TextBox1_TextChanged);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}


確認方法

F5 キーを押して Web アプリケーションを実行します。ブラウザーでは、製品のテキスト ボックスと、[カテゴリ] ボックスで「農産物」で「Bob の叔父さんの有機ドライ ナシ」が表示されます。テキスト ボックスの下に製品情報が格納されているデータ グリッドが表示されます。

トラブルシューティング

  • ジェネリックデータセットでは、 Fillメソッドを呼び出すと、テーブル名を渡すことは必要ありません。型指定されたデータセットでは、ただし、必要とする、テーブル名の代わりにインデックスを使用するデータセットテーブルコレクションにアクセスする場合でも。型指定されたデータセットテーブル名を渡すための障害は、実行時に「は行 0 の位置に」のエラーをスローします。これの型指定されたデータセットもが、独自のテーブル名をさせることができないことを意味は上記のコードに示すようにアクセスする、型指定されたDataSetクラスで参照されている 1 つを渡す必要があります。
  • 最初にスキーマを生成するために使用され、型指定されたデータセットクラスしているスキーマのデザイン ビューにもう一度ドラッグして、データベース オブジェクトを変更する場合、Visual Studio .NET によって生成されたスキーマを手動で行った変更は上書きされます。お勧めする必要がある Microsoft SQL Server レベルで変更を加えると、結果のスキーマを変更するよりも新しい型指定されたデータセットを生成するのには

関連情報

型指定されたデータセットの操作に関する詳細については、次のマイクロソフト Web サイトを参照してください。


プロパティ

文書番号:320714 - 最終更新日: 2017/02/01 - リビジョン: 1

フィードバック