誰かが状況を助けることができますか? ASP.NET MVCから実行したいストアドプロシージャがあり、データベースからSELECTステートメントが表示されます。ストアドプロシージャはID
を受け入れ、それに関連付けられたレコードを返します。ID
asp.net mvcでSelectステートメントを使用してストアドプロシージャを呼び出す
ここではコードを呼び出す必要がありますが、表示方法はわかりません。
SQLコード:
create procedure sp_members_by_skills
(@memberID int)
as
begin
Select memberID, skill_id
from members_skills
where memberID = @memberID
end
コントローラーコード:
SapnaDBEntities dbconn = new SapnaDBEntities();
public ActionResult call_members_by_skills(int? id)
{
var query = dbconn.sp_members_by_skills(id);
return Json(query,JsonRequestBehavior.AllowGet);
}
ビューコード:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Members by their skills</h4>
<hr />
@Html.ValidationSummary(true)
<div class="form-group">
@Html.LabelFor(model => model.memberID, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.memberID)
@Html.ValidationMessageFor(model => model.memberID)
</div>
</div>
</div>
}
@using (Ajax.BeginForm("call_members_by_skills", "Call_procedures", new AjaxOptions {HttpMethod="POST",InsertionMode=InsertionMode.Replace, UpdateTargetId="resultArea" }))
{
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Submit" class="btn btn-default" />
</div>
</div>
}
はあなたが現在のエンティティまたはActiveRecordのようなORMフレームワークを使用していて、あなたのストアドプロシージャの前に付けるべきではないのですか?または、ADO.NETを介してdbにクエリを実行していますか? –
あなたは直面している問題は何ですか? – Shyju
サイドノート:ストアドプロシージャのプレフィックス 'sp_'を**使用しないでください**。マイクロソフトは、[*ストアドプロシージャの名前付け*を参照してください](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx)、およびあなたはいつか名前衝突のリスクを将来実行します。 [ストアドプロシージャのパフォーマンスにも悪い](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)単に 'sp_'を避け、他の何かを接頭辞として使うのが最善です。 –