現在オフラインです。再接続するためにインターネットの接続を待っています

方法: SQL Server の呼び出しで ASP ストアド プロシージャ。NET の Visual C# を使用します。NET

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:320916
マイクロソフトの Visual Basic では。この資料のバージョンを NET を参照してください。 306574.
マイクロソフト ビジュアルの j#。この資料のバージョンを NET を参照してください。 320622.

このタスクで

概要
この資料では、ASP を使用する方法を示します。NET と ADO を使用します。NET Visual C#。NET を作成し、Microsoft SQL Server を呼び出すには、入力パラメーターと出力パラメーターはストアド プロシージャ。

この資料のサンプル コードの最初で作成するストアド プロシージャが存在するかどうかチェックを Pubs データベースは、標準の Microsoft SQL Server のインストールが含まれています。ストアド プロシージャが存在しない場合は、コードを検索するのには、1 つのパラメーターを受け取るストアド プロシージャを作成、 著者 表は、last name でと一致する行を返し、出力パラメーターとして返される行の数です。

この資料では、単純なユーザー インターフェイスを提供する Web フォームを作成する方法も示します。Web フォームには、次の項目が含まれます。
  • ユーザーが検索条件を入力するテキスト ボックスです。
  • A データ グリッド 検索結果を表示するコントロールです。
  • A ラベル 返されるレコードの数を表示するコントロールです。
  • A ボタン コントロール ボタンがクリックしてされたときに、ストアド プロシージャを呼び出します。
back to the top

要件

推奨されるハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および必要な service pack を以下に示します。
  • Microsoft SQL Server 7.0 またはそれ以降のバージョン
  • マイクロソフトの Visual Studio。NET
  • Microsoft の Visual C#。NET
  • データベース内のストアド プロシージャを作成するためのアクセス許可
この資料では、次のトピックに精通しているを前提としています。
  • ASP。NET
  • SQL Server のストアド プロシージャ
back to the top

ASP を作成します。Net プロジェクトを作成し、コントロールを追加します。

このセクションでは、ASP を作成します。Net プロジェクトを作成し、基本的なユーザー インターフェイスを作成します。次の手順が Microsoft Visual C# 使用する注意してください。NET コードです。プロジェクトを作成するには、次の手順を実行します。
  1. クリックしてください。 開始、ポイント プログラム、ポイント マイクロソフトの Visual Studio。NET、し マイクロソフトの Visual Studio。NET.
  2. Visual Studio の上で。NET スタート ページ、クリックしてください 新しいプロジェクト.
  3. で、 新しいプロジェクト ダイアログ ボックス、クリックして Visual C# プロジェクト 下にあります。 [プロジェクトの種類、し ASP。Net プロファイル 下にあります。 テンプレート.
  4. で、 名前 ボックスし、Web アプリケーションの名前を入力し、クリックしてください [OK].
  5. 次のサーバー コントロールを Web フォームに追加し、表のとおりにプロパティを設定します。
    コントロールID プロパティText プロパティ
    ラベルlblLastName著者のラスト ネームを入力します。
    テキスト ボックスtxtLastName%
    ボタンbtnGetAuthors作成者を取得します。
    ラベルlblRowCount(行カウント)

  6. ドラッグします。 データ グリッド サーバー コントロールの [ツールボックス] から Web フォームには、し設定、 名前 プロパティ GrdAuthors.
  7. グリッドを右クリックしをクリックしてください オート フォーマット.
  8. クリックしてください。 プロフェッショナル 1 方式、およびクリック [OK].
back to the top

作成、GetAuthorsByLastName ストアド プロシージャ

GetAuthorsByLastName のストアド プロシージャの作成に以下の Transact SQL コードを使用します。
Use PubsGoCreate Procedure GetAuthorsByLastName (@au_lname varchar(40), @RowCount int output)  as select * from authors where au_lname like @au_lname; /* @@ROWCOUNT returns the number of rows that are affected by the last statement. */ select @RowCount=@@ROWCOUNT				
このコードには 2 つのパラメーターが含まれます: @ au_lname および @ RowCount。@ Au_lname パラメーター"like"検索を実行するために、検索文字列を取得する入力パラメーターである、 著者 テーブルです。@ RowCount パラメーター @ @ROWCOUNT 変数を使用して、影響を受ける行を取得するのには、出力パラメーターです。

back to the top

作成し、ストアド プロシージャを実行します。

SQL Server データベースにアクセスするのには、インポートする必要があります、 System.Data.SqlClient などの新しいオブジェクトを提供する名前空間は、 SqlDataReader および 含む Dataset オブジェクト。使用することができます。 SqlDataReader SQL Server データベースから行の転送専用ストリームを読み取るには。 データ アダプター 一連のデータ コマンドおよびデータベース接続に使用できるを表します、 データセット オブジェクトとは、SQL Server データベースを更新します。

ADO.NET も導入しています、 データセット オブジェクトは、データ ソースにかかわらず一貫性のある、リレーショナル プログラミング モデルを提供するデータのメモリ常駐表現です。このセクションのコードでこれらすべてのオブジェクトを使用します。
  1. Web フォームをダブルクリックします。
  2. 次のコードは (追加します。 ここで ディレクティブ) を Web フォームの宣言セクションに、コード ウィンドウの一番上に表示します。
    using System.Data;using System.Data.SqlClient;					
  3. ストアド プロシージャが存在するかどうかを確認するのには、新しいストアド プロシージャを作成するを使用します。 SqlCommand オブジェクトのでは SqlDataReader オブジェクトです。使用することができます。 SqlCommand データベースに対して SQL コマンドを実行します。次を呼び出して、 ExecuteReader メソッド SqlCommand 取得するのには SqlDataReader、クエリに一致する行が含まれています。

    次のコードを追加、 Page_Load Web フォームのイベント:
    	private void Page_Load(object sender, System.EventArgs e)	{		// Only run this code the first time the page is loaded.		// The code inside the IF statement is skipped when you resubmit the page.		if (!IsPostBack)		{			//Create a connection to the SQL Server; modify the connection string for your environment			//SqlConnection MyConnection = new SqlConnection("server=(local);database=pubs;Trusted_Connection=yes");			SqlConnection MyConnection = new SqlConnection("server=(local);database=pubs;UID=myUser;PWD=myPassword;");			// Create a Command object, and then set the connection.			// The following SQL statements check whether a GetAuthorsByLastName  			// stored procedure already exists.			SqlCommand MyCommand = new SqlCommand("select * from sysobjects where id = object_id(N'GetAuthorsByLastName')" +			"  and OBJECTPROPERTY(id, N'IsProcedure') = 1", MyConnection);			// Set the command type that you will run.			MyCommand.CommandType = CommandType.Text;			// Open the connection.			MyCommand.Connection.Open();			// Run the SQL statement, and then get the returned rows to the DataReader.			SqlDataReader MyDataReader = MyCommand.ExecuteReader();			// If any rows are returned, the stored procedure that you are trying 			// to create already exists. Therefore, try to create the stored procedure			// only if it does not exist.			if(!MyDataReader.Read())			{				MyCommand.CommandText = "create procedure GetAuthorsByLastName" + 					" (@au_lname varchar(40), select * from authors where" +					" au_lname like @au_lname; select @RowCount=@@ROWCOUNT";				MyDataReader.Close();				MyCommand.ExecuteNonQuery();			}			else			{				MyDataReader.Close();			}			MyCommand.Dispose();  //Dispose of the Command object.			MyConnection.Close(); //Close the connection.		}		// Add the event handler to the Button_Click event.		this.btnGetAuthors.Click += new System.EventHandler(this.btnGetAuthors_Click);	}					
  4. ストアド プロシージャを呼び出すは クリックしてください。 イベント、 btnGetAuthors ボタンをクリックし、[次を使用して、 含む Dataset ストアド プロシージャを実行するオブジェクトです。ストアド プロシージャのパラメーターを作成して追加する必要があります、 パラメーター コレクションの 含む Dataset オブジェクトです。

    後に、次のコードを追加、 Page_Load イベント:
    	private void btnGetAuthors_Click(object sender, System.EventArgs e)	{		//Create a connection to the SQL Server; modify the connection string for your environment.		//SqlConnection MyConnection = new SqlConnection("server=(local);database=pubs;Trusted_Connection=yes");		SqlConnection MyConnection = new SqlConnection("server=(local);database=pubs;UID=myUser;PWD=myPassword;");		//Create a DataAdapter, and then provide the name of the stored procedure.		SqlDataAdapter MyDataAdapter = new SqlDataAdapter("GetAuthorsByLastName", MyConnection);		//Set the command type as StoredProcedure.		MyDataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;		//Create and add a parameter to Parameters collection for the stored procedure.		MyDataAdapter.SelectCommand.Parameters.Add(new SqlParameter("@au_lname", SqlDbType.VarChar, 40));		//Assign the search value to the parameter.		MyDataAdapter.SelectCommand.Parameters["@au_lname"].Value = (txtLastName.Text).Trim();		//Create and add an output parameter to the Parameters collection. 		MyDataAdapter.SelectCommand.Parameters.Add(new SqlParameter("@RowCount", SqlDbType.Int, 4));		//Set the direction for the parameter. This parameter returns the Rows that are returned.		MyDataAdapter.SelectCommand.Parameters["@RowCount"].Direction = ParameterDirection.Output;		//Create a new DataSet to hold the records.		DataSet DS = new DataSet();				//Fill the DataSet with the rows that are returned.		MyDataAdapter.Fill(DS, "AuthorsByLastName");		//Get the number of rows returned, and assign it to the Label control.		//lblRowCount.Text = DS.Tables(0).Rows.Count().ToString() & " Rows Found!"		lblRowCount.Text = MyDataAdapter.SelectCommand.Parameters[1].Value + " Rows Found!";		//Set the data source for the DataGrid as the DataSet that holds the rows.		GrdAuthors.DataSource = DS.Tables["AuthorsByLastName"].DefaultView;		//NOTE: If you do not call this method, the DataGrid is not displayed!		GrdAuthors.DataBind();		MyDataAdapter.Dispose(); //Dispose the DataAdapter.		MyConnection.Close(); //Close the connection.	}					
  5. ソリューション エクスプ ローラーで、.aspx ページを右クリックし、クリックしてください スタート ページの設定.
  6. プロジェクトを保存し、 開始 Visual Studio で。NET。プロジェクトがコンパイルされ、既定のページが実行されることに注意してください。
  7. テキスト ボックスには、著者のラスト ネームを入力し、クリックしてください 作成者を取得します。.通知は、ストアド プロシージャが呼び出され、返された行を作成することが データ グリッド.

    SQL Server 型検索文字列などを提供することができます。 G %、複数行を返すすべての著者氏名が、文字"G"で始まる
back to the top

トラブルシューティング

  • データベースに接続できない場合は、確認してください、 接続文字列 SQL Server を実行しているサーバーへのポインターが正しく。
  • 場合は、データベースに接続できても、ストアド プロシージャを作成しようとすると問題が発生した場合ことを確認するのには、接続先のデータベースにストアド プロシージャを作成するのには、適切なアクセス許可があります。
back to the top

警告: この記事は自動翻訳されています

プロパティ

文書番号:320916 - 最終更新日: 07/27/2011 10:34:00 - リビジョン: 5.0

  • kbhowtomaster kbstoredproc kbsqlclient kbsystemdata kbmt KB320916 KbMtja
フィードバック
nerror="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">