基本的に私は同じことをしたかったのですが、結局それを理解できませんでした..なので、このようにspを呼び出したいときに代わりに呼び出せるクラスを作成することにしました。このリンクは、sp の結果を呼び出して Gridview にバインドする方法の基本を示しています
。
(「コード ビハインド ページのフローは次のとおりです。」セクションを参照してください。また、C# に慣れていない場合は、そのページに VB.NET バージョンへのリンクがあります)。
コード ビハインド ボタン クリック イベントの修正版を次に示します。
try {
System.Configuration.Configuration rootWebConfig =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/MyWebsite"); //create connection string object
System.Configuration.ConnectionStringSettings connString;
if (rootWebConfig.ConnectionStrings.ConnectionStrings.Count > 0) {
connString = rootWebConfig.ConnectionStrings.ConnectionStrings["MyConnectionString"];
if (connString != null) {
System.Data.SqlClient.SqlCommand cmd =
new System.Data.SqlClient.SqlCommand("MyStoredProcedure", new System.Data.SqlClient.SqlConnection(connString.ConnectionString));
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Connection.Open();
GridViewResults.DataSource = cmd.ExecuteReader();
GridViewResults.DataBind();
cmd.Connection.Close();
cmd.Connection.Dispose();
}
else {
throw new Exception("No MyConnectionString Connection String found in web.config.");
}
}
else {
throw new Exception("No Connection Strings found in web.config.");
}
}
catch (Exception) {
throw;
}
edmx ファイルがあるデータレイヤー プロジェクトの独自のクラスにそれを組み込み、それを使用してそのようなストアド プロシージャを呼び出すだけです。:)。