は、パラメータを含むストアドプロシージャを使用してビューを表示するときに少し問題があります。ここでパラメータを使用してストアドプロシージャでデータを表示
は私のコードです:
私はそれはテーブルと一緒に取得することとしているローンの種類を確認したいされて私は私の見解で欲しいビュー
@model IEnumerable<PEMCOLoan.DAL.Entities.spModels.getLoanWithTypes>
@{
ViewBag.Title = "List of Summary per Loan Types";
}
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#home">Educational Loan</a></li>
<li><a data-toggle="tab" href="#menu1">Petty Cash</a></li>
<li><a data-toggle="tab" href="#menu2">Business Loan</a></li>
</ul>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<h3>Educational Loan</h3>
<table class="table">
<tr>
<th>Employee ID</th>
<th>Name</th>
<th>Loan Type</th>
<th>Principal</th>
<th>Interest</th>
<th>Total</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.EmployeeID)</td>
<td>@Html.DisplayFor(modelItem => item.FullName)</td>
<td>@Html.DisplayFor(modelItem => item.LoanTypeID)</td>
<td>@Html.DisplayFor(modelItem => item.PrincipalAmount)</td>
<td>@Html.DisplayFor(modelItem => item.Interest)</td>
<td>@Html.DisplayFor(modelItem => item.Total)</td>
</tr>
}
</table>
</div>
<div id="menu1" class="tab-pane fade">
<h3>Petty Cash</h3>
<table class="table">
<tr>
<th>Employee ID</th>
<th>Name</th>
<th>Loan Type</th>
<th>Principal</th>
<th>Interest</th>
<th>Total</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.EmployeeID)</td>
<td>@Html.DisplayFor(modelItem => item.FullName)</td>
<td>@Html.DisplayFor(modelItem => item.LoanTypeID)</td>
<td>@Html.DisplayFor(modelItem => item.PrincipalAmount)</td>
<td>@Html.DisplayFor(modelItem => item.Interest)</td>
<td>@Html.DisplayFor(modelItem => item.Total)</td>
</tr>
}
</table>
</div>
<div id="menu2" class="tab-pane fade">
<h3>Business Loan</h3>
<table class="table">
<tr>
<th>Employee ID</th>
<th>Name</th>
<th>Loan Type</th>
<th>Principal</th>
<th>Interest</th>
<th>Total</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.EmployeeID)</td>
<td>@Html.DisplayFor(modelItem => item.FullName)</td>
<td>@Html.DisplayFor(modelItem => item.LoanTypeID)</td>
<td>@Html.DisplayFor(modelItem => item.PrincipalAmount)</td>
<td>@Html.DisplayFor(modelItem => item.Interest)</td>
<td>@Html.DisplayFor(modelItem => item.Total)</td>
</tr>
}
</table>
</div>
</div>
。たとえば、ローンタイプ1,2,3がある場合、ローンタイプ1がEducational Loan
のレコードと一緒に行くと、2は小額の現金などになります。ここでは、私が取り組んだ写真があります。 他のパネルでは同じものがあります。
コントローラ
は今、私は一時的にここで
[HttpGet]
public IActionResult Index()
{
return View(_Context.Set<getLoanWithTypes>().FromSql("sp_GetLoanTypesWithPrincipal").AsNoTracking());
}
はパラメータ
[HttpGet]
public IActionResult Index(getLoanWithTypes glwt)
{
return View(_Context.Set<getLoanWithTypes>().FromSql("sp_GetLoanTypesWithPrincipal @p0 = {0}, @p1 = {1}", glwt.EmployeeID.ToString(), glwt.LoanTypeID.ToString()).AsNoTracking());
}
と私の部分コードである私はcuzのそれと少し問題を抱えている、これを持っていました私はパスを渡す方法がわからない見通しから逃れる。私がそれでやりたいことは、ビューがロードされたときに各LoanTypeID
のパラメータを設定したいということです。または、各パネルをクリックするだけで、LoanTypeID
パラメータが設定されます。
SQL: パラメータ: @empID AS INT = NULL、 @loanID AS INT = NULL
問合せ:
SELECT
[EmployeeID] = emp.EmployeeID,
[FullName] = emp.FName + ' ' + emp.LName,
[LoanTypeID] = lt.LoanTypeID,
[PrincipalAmount] = (SELECT ISNULL(SUM((CAST(((lc.LoanAmount)/((dbo.fnNumberOfYears(CONVERT(VARCHAR(15), LoanDateStart, 101), CONVERT(VARCHAR(15), LoanPaymentDue, 101)) * 12) * 2)) AS DECIMAL(18,2)))),0) FROM LoanContract lc INNER JOIN LoanType lt ON lt.LoanTypeID = lc.LoanTypeID WHERE lc.LoanTypeID = @loanID AND lc.EmployeeID = emp.EmployeeID),
[Interest] = (SELECT ISNULL(SUM((CAST((((lt.InterestRate/100) * lc.LoanAmount)/((dbo.fnNumberOfYears(CONVERT(VARCHAR(15), LoanDateStart, 101), CONVERT(VARCHAR(15), LoanPaymentDue, 101)) * 12) * 2)) AS DECIMAL(18,2)))),0) FROM LoanContract lc INNER JOIN LoanType lt ON lt.LoanTypeID = lc.LoanTypeID WHERE lc.LoanTypeID = @loanID AND lc.EmployeeID = emp.EmployeeID),
[Total] = (SELECT ISNULL(SUM((CAST(((((lt.InterestRate/100) * lc.LoanAmount) + lc.LoanAmount)/((dbo.fnNumberOfYears(CONVERT(VARCHAR(15), LoanDateStart, 101), CONVERT(VARCHAR(15), LoanPaymentDue, 101)) * 12) * 2)) AS DECIMAL(18,2)))),0) FROM LoanContract lc INNER JOIN LoanType lt ON lt.LoanTypeID = lc.LoanTypeID WHERE lc.LoanTypeID = @loanID AND lc.EmployeeID = emp.EmployeeID)
FROM Employee emp
INNER JOIN Salary sal ON sal.EmployeeID = emp.EmployeeID
INNER JOIN LoanContract lc ON lc.EmployeeID = emp.EmployeeID
INNER JOIN LoanType lt ON lt.LoanTypeID = lc.LoanTypeID
LEFT JOIN LoanPayments lp ON lp.LoanID = lc.LoanID
LEFT JOIN LoanFrequency lf ON lf.LoanFrequencyID = lc.LoanFrequencyID
WHERE emp.EmployeeID IN (SELECT EmployeeID FROM Employee WHERE EmployeeID LIKE '%' + CASE WHEN ISNULL(@empID,0) <> 0 THEN CAST(ISNULL(@empID, 0) AS VARCHAR(15)) ELSE '' END + '%')
AND lc.LoanTypeID IN (SELECT LoanTypeID FROM LoanType WHERE LoanTypeID LIKE '%' + CASE WHEN ISNULL(@loanID,0) <> 0 THEN CAST(ISNULL(@loanID, 0) AS VARCHAR(15)) ELSE '' END + '%')
GROUP BY emp.EmployeeID, lt.LoanTypeID, emp.FName, emp.LName
ORDER BY emp.EmployeeID ASC
何それがないと、それのためにということです各従業員は現在のPrincipalAmount
、Interest
などを取得します。PrincipalAmount
のLoanTypeIDが同じ場合、 EmployeeIDを計算し、合計します。ここにサンプル画像があります。
私はasp.netコアとefコアに少し新しくて、まだ事前知識がありません。
これで十分です。読んだり、提案してもらうために参考にしてください。ありがとう!